Js數組處理方式整理

數組的轉化

  • Array.from將相似數組的對象和可遍歷的對象轉爲真正的數組es6

var arr1 = Array.from(arrayLikeObj); //ES6

var arr2 = [ ].slice.call(arrayLikeObj): //ES5
  • Array.of將一組值轉換爲數組數組

Array.of(3,11,7) // [3,11,7]

數組的複製

  • copyWithin將指定位置的成員複製到其它位置(會覆蓋原有成員),而後返回當前數組。
    此方法會修改原數組。函數

Array.prototype.copyWithin(target, start = 0, end = this.length)

接受三個參數this

* target(必需):從該位置開始替換數據
* start(可選):從該位置開始讀取數據,默認爲0,若是是負值,表示倒數(右邊第一位爲-1)
* end(可選):到該位置前中止讀取數據,默認爲數組長度,若是是負值,表示倒數
[1,2,3,4,5,6].copyWithin(0,2) // [3,4,5,6,5,6]

[1, 2, 3, 4, 5].copyWithin(0, -2, -1) // [4, 2, 3, 4, 5]

數組的查找

  • 查找成員編碼

find方法用於找出第一個符合條件的數組成員。它的參數是一個回調函數,數組中的每個成員依次執行這個回調函數。
若是找到第一個符合條件的成員,返回該成員。若是沒有符合條件的,則返回undefinedprototype

[1, 5, 10, 15].find(function(value, index, arr) {
  return value > 9;
}) // 10

find方法的回調函數接受三個參數
value:當前值
index:當前位置
arr:原數組code

  • 查找成員位置對象

[1, 5, 10, 15].findIndex(function(value, index, arr) {
  return value > 9;
}) // 2

indexOf也能夠返回成員位置,若是不存在,則返回-1,因此不少時候也用來判斷成員是否存在排序

if (arr.indexOf(el) !== -1) {
    ... // el不存在數組中時執行
}

-判斷成員是否存在ip

include方法判斷某個給定值是否存在數組中,返回布爾值。

[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true

數組的填充

使用fill()給定值填充數組

接受三個參數
target(必需):用該數值填充數組
start(可選):從該位置開始填充,不接收負值
end(可選):到該位置前中止填充

['a', 'b', 'c'].fill(7, 1, 2) // ['a',7,'c']

數組的遍歷取值

鍵名遍歷:keys( )
鍵值遍歷:values( )
鍵值對遍歷:entries( )

能夠用for...of循環遍歷

for (let index of ['a', 'b'].keys()) {
  console.log(index);}
// 0
// 1

for (let elem of ['a', 'b'].values()) {
  console.log(elem);}
// 'a'
// 'b'

for (let [index, elem] of ['a', 'b'].entries()) {
  console.log(index, elem);}
// 0 "a"
// 1 "b"

數組的元素操做

  • concat()鏈接兩個或更多的數組,並返回結果。
    arr1.concat(arr2)

    ES6中可利用擴展運算符直接寫成
    [ ...arr1,...arr2]
  • join()把數組的全部元素放入一個字符串。元素經過指定的分隔符進行分隔。

  • pop()刪除並返回數組的最後一個元素

  • push()向數組的末尾添加一個或更多元素,並返回新的長度。

  • reverse()顛倒數組中元素的順序。

  • shift()刪除並返回數組的第一個元素

  • slice()
    從某個已有的數組返回選定的元素(返回一個新數組)

arr.slice(start,end)

start

必需。規定從何處開始選取。若是是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。

end

可選。規定從何處結束選取。該參數是數組片段結束處的數組下標。若是沒有指定該參數,那麼切分的數組包含從 start 到數組結束的全部元素。若是這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。
  • sort()
    對數組的元素進行排序(按照字符編碼的順序)

若是要按照數值大小對數字排序,必須使用一個排序函數arr.sort(sortNumber)

  • splice()刪除元素,並向數組添加新元素。會改變原數組

    arr.splice(index,howmany,item1,.....,itemX)
    
    index
    
    必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。
    
    howmany
    
    必需。要刪除的項目數量。若是設置爲 0,則不會刪除項目。
    
    item1, ..., itemX
    
    可選。向數組添加的新項目。
  • toSource()返回該對象的源代碼。

  • toString()把數組轉換爲字符串,並返回結果。

  • toLocaleString()把數組轉換爲本地數組,並返回結果。

  • unshift()向數組的開頭添加一個或更多元素,並返回新的長度。

  • valueOf()返回數組對象的原始值

參考阮一峯《ECMAScript 6 入門》:http://es6.ruanyifeng.com/#do...

相關文章
相關標籤/搜索