ES6 引入了許多有用的數(shù)組方法野宜,例如:
- find()扫步,查找列表中的成員,返回 null 表示沒找到
const array = [{ id: 1, checked: true }, { id: 2,checked: false }];
array.find(item => item.id === 2 )
// {id: 2, checked: false}
- findIndex()匈子,查找列表成員的索引如果不存在則返回-1如果存在則返回索引
array.findIndex(item => item.id === 1)
// 0
array.findIndex(item => item.id === 2)
// 1
array.findIndex(item => item.id === 3)
//-1
- some()河胎,檢查某個(gè)斷言是否至少在列表的一個(gè)成員上為真
const array = [{ id: 1, checked: false }, { id: 2,checked: false }];
array.some(item => item.checked) //false
const array = [{ id: 1, checked: false }, { id: 2,checked: true }];
array.some(item => item.checked) //true
- includes,列表是否包含某項(xiàng)
const array = ['a','b','c','d','e']
array.includes('a') //true
array.includes('1') // false
該方法的第二個(gè)參數(shù)表示搜索的起始位置虎敦,默認(rèn)為 0游岳。如果第二個(gè)參數(shù)為負(fù)數(shù)政敢,則表示倒數(shù)的位置,如果這時(shí)它大于數(shù)組長度(比如第二個(gè)參數(shù)為 -4胚迫,但數(shù)組長度為 3 )喷户,則會重置為從 0 開始。
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
- ES5的數(shù)組合并concat(arr1,arr2)访锻、ES6的數(shù)組合并[...newArr]
在ES6以前褪尝,我們都是使用concat進(jìn)行數(shù)組的合并或者使用遍歷循環(huán)的方法。
const arr1 = ['a', 'b'];
const arr2 = ['c'];
const arr3 = ['d', 'e'];
// ES5 的合并數(shù)組
arr1.concat(arr2, arr3);
// ES6 的合并數(shù)組
[...arr1, ...arr2, ...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]
- 將字符串轉(zhuǎn)為真正的數(shù)組期犬。
[...'hello']
// [ "h", "e", "l", "l", "o" ]
- 數(shù)組實(shí)例的 entries()河哑,keys() 和 values()
用 for…of 循環(huán)進(jìn)行遍歷:- keys() 是對鍵名的遍歷
for (let index of ['a', 'b'].keys()) {
console.log(index);
}
// 0
// 1
- values() 是對鍵值的遍歷
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
// 'a'
// 'b'
- entries() 是對鍵值對的遍歷。
for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
// 0 "a"
// 1 "b"