查找數組元素位置


 

一、題面分析:需要寫一個函數,接收兩個參數,第一個參數為一個數組,第二個參數為需要查出位置的元素。

二、數組相關知識回顧。

  1,數組有哪些方法。

    (1)轉換方法。將數組中的每個值的字符串形式以逗號組合在一起。

       a、toString

       b、toLocalString

       c、valueOf

  (2)棧方法。遵循先進后出的規則。

    a、push:將元素加入數組末尾,並返回新數組的長度。可以接受不止一個的元素。

    b、pop:將數組的最后一個元素移除,並返回該元素

  (3)隊列方法。遵循先進先出的規則。

    a、shift:將數組的第一個元素移除,並返回該元素

    b、unshift:將元素加入數組的開頭,並返回新數組的長度。可以接收不止一個的元素。

  (4)重排序方法。都返回重新排序的數組

    a、reverse:反轉數組的排列。

    b、sort:升序排列數組,會調用每個元素的toString方法,照字符串從小到大排序,(可以接收一個函數作為參數。實現數學中的排序。比如compare(),前大后小返回1,前小后大返回正數,一樣大返回0)

  (5)操作方法。

    a、concat:該方法首先會復制當前數組,再將接收到的參數加入復制數組末尾,返回新數組。

    b、slice:該方法可以接受一個或者兩個參數。接受一個參數,該參數代表新數組的起始位置,返回起始位置到數組末尾的新數組。接收兩個參數,第一個參數代表新數組起始位置,第二個位置代表新數組結束位置。注:該函數的參數都可以是負數,負數參數加上數組的長度合成新參數,如果起始位置參數大於結束位置參數,則返回空數組。

    c、splice:該方法是數組醉強大的方法。非常重要。共有3個作用,可以接受2或者3個參數。

    1,刪除,接受兩個參數。第一個參數為起始位置,第二個參數為要刪除的元素數量。

    2,插入,接受三個參數。第一個參數為起始位置,第二個參數為刪除的元素數量0,第三個參數為要插入的元素(可以接收多個,逗號隔開)。

    3,替換,接收三個參數。第一個參數為起始位置,第二個參數為要刪除的元素數量,第三個參數為要插入的元素。

  (6)位置方法。ES5才出的新方法,兼容IE9以上瀏覽器

    a:indexOf:可以接收兩個參數,第一個參數為要查詢位置的元素,第二個參數為開始位置(從前數)。如果查不到則返回-1。

    b,lastIndexOf :接收兩個參數,第一個為起始位置,第二個為開始位置(從后數)。如果查不到則返回-1。

  (7)迭代方法。ES5新出的5個方法,每個方法都接收兩個參數,第一個參數為要在每一項上運行的函數,第二個參數為該函數的作用域對象。

    a,every:第一個參數為要對每個項運行的函數,如果每一項都返回ture,則該方法返回ture。

    b,filter:第一個參數為要對每個項運行的函數,返回值為每一項返回ture的元素組成的數組。

    c,foreach,第一個參數為要運行的函數,改方法沒有返回值。

    d,map:第一個參數為要運行的函數,返回每一項運行后返回值組成的數組。

    e,some:第一個參數為要運行的函數,有一項返回ture則返回ture。

  (8)歸並方法。ES5新出的方法。可以接收兩個參數,第一個參數為要對每個項調用的函數,該參數函數接收4個參數,1,前一個值,2,當前值,3,項的索引,4,數組對象(array),第二個參數為歸並基礎的初始值。

    a,reduce:從數組第一項開始遍歷。

    b,reduceRight:從數組最后一項開始遍歷。

三,根據題面,確定使用數組的位置方法,indexOf或者lastIndexOf。該方法是ES5新出的方法因此需要分情況。定義位置方法 function indexOf(arr,item){};

  1,瀏覽器支持該方法,能力檢測。不使用瀏覽器判斷

if(Array.prototype.indexOf){

arr.indexOf(item);

}

2,瀏覽器不支持該方法。

var i=0;

for(i;i<=arr.length;i++){

if(arr[i]==item){return i;}

else {

return -1;

}

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM