JS

ES6新增新操作数组的方法

2019-02-28  本文已影响0人  rebirth重生A

接上篇数组操作方法,补充es新增操作数组的方法

1.find(),传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它,并且终止搜索

const arr = [1, "2", 3, 3, "2"]

console.log(arr.find(n => typeof n === "number")) // 1


2.findIndex(),传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它的下标,终止搜索

const arr = [1, "2", 3, 3, "2"]

console.log(arr.findIndex(n => typeofn === "number")) // 0


3.fill(),用新元素替换掉数组内的元素,可以指定替换下标范围。

arr.fill(value, start, end)


4.from(),将类似数组的对象(array-like object)和可遍历(iterable)的对象转为真正的数组

const bar = ["a", "b", "c"];

Array.from(bar);

// ["a", "b", "c"]

Array.from('foo');

// ["f", "o", "o"]


5.of(),用于将一组值,转换为数组。这个方法的主要目的,是弥补数组构造函数 Array() 的不足。因为参数个数的不同,会导致 Array() 的行为有差异。

Array() // []

Array(3) // [, , ,]

Array(3, 11, 8) // [3, 11, 8]

Array.of(7);    // [7]

Array.of(1, 2, 3); // [1, 2, 3]

Array(7);     // [ , , , , , , ]

Array(1, 2, 3);  // [1, 2, 3]


6、entries() 返回迭代器:返回键值对

//数组

const arr = ['a', 'b', 'c'];

for(let v of arr.entries()) {

 console.log(v)

}         // [0, 'a'] [1, 'b'] [2, 'c']

//Set

const arr = newSet(['a', 'b', 'c']);

for(let v of arr.entries()) {

 console.log(v)

}        // ['a', 'a'] ['b', 'b'] ['c', 'c']

//Map

const arr = newMap();

arr.set('a', 'a');

arr.set('b', 'b');

for(let v of arr.entries()) {

 console.log(v)

}      // ['a', 'a'] ['b', 'b']


7.values() 返回迭代器:返回键值对的value

//数组

const arr = ['a', 'b', 'c'];

for(let v of arr.values()) {

 console.log(v)

}    //'a' 'b' 'c'

//Set

const arr = newSet(['a', 'b', 'c']);

for(let v of arr.values()) {

 console.log(v)

}    // 'a' 'b' 'c'

//Map

const arr = newMap();

arr.set('a', 'a');

arr.set('b', 'b');

for(let v of arr.values()) {

 console.log(v)

}     // 'a' 'b'


8.keys() 返回迭代器:返回键值对的key

//数组

const arr = ['a', 'b', 'c'];

for(let v of arr.keys()) {

 console.log(v)

}    // 0 1 2

//Set

const arr = newSet(['a', 'b', 'c']);

for(let v of arr.keys()) {

 console.log(v)

}    // 'a' 'b' 'c'

//Map

const arr = newMap();

arr.set('a', 'a');

arr.set('b', 'b');

for(let v of arr.keys()) {

 console.log(v)

}     // 'a' 'b'


9.includes(),判断数组中是否存在该元素,参数:查找的值、起始位置,可以替换 ES5 时代的 indexOf 判断方式。indexOf 判断元素是否为 NaN,会判断错误。

var a = [1, 2, 3];

a.includes(2); // true

a.includes(4); // false

上一篇 下一篇

猜你喜欢

热点阅读