ES6-数组的新方法

1.1 from,将一个数组或者类数组变成数组,会复制一份

let olfArr = [1,2,3] let newArr = Array.from(olfArr); console.log(newArr) // [ 1, 2, 3 ]

【ES6-数组的新方法】1.2Array.of,of是为了将一组数值,转换为数组
console.log(Array(3), Array(3).length); //[ <3 empty items> ] 3 console.log(Array.of(3), Array.of(3).length); // [ 3 ] 1

1.3 copyWithin,Array.prototype.copyWithin(target, start = 0, end = this.length) 覆盖目标的下标 开始的下标 结束的后一个的下标
let arr = [1, 2, 3, 4, 5].copyWithin(0, 1, 2) console.log(arr) // [ 2, 2, 3, 4, 5 ]

1.4 find,查到对应的元素和索引
let arr = [1, 2 ,3, 3, 4, 5]; let find = arr.find((item, index, arr) => { return item === 3; }); let findIndex = arr.findIndex((item, index, arr) => { return item === 3; }); console.log(find, findIndex); // 3 2

1.5 fill,就是填充数组的意思 会更改原数组 Array.prototype.fill(value, start, end = this.length);
let arr = [1, 2, 3, 4, 5, 6]; arr.fill('a', 1, 2); console.log(arr); // [ 1, 'a', 3, 4, 5, 6 ]

1.6 map,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。
const map = new Map([ ['name', '张三'], ['title', 'Author'] ]); map.size // 2 map.has('name') // true map.get('name') // "张三" map.has('title') // true map.get('title') // "Author"

1.7 reduce, Array的reduce()把一个函数作用在这个Array[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算
var arr = [1, 3, 5, 7, 9]; arr.reduce(function (x, y) { return x + y; }); // 25

1.8 filter,
filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。回调函数 filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身

// 在一个Array中,删掉偶数,只保留奇数,可以这么写: var arr = [1, 2, 4, 5, 6, 9, 10, 15]; var r = arr.filter(function (x) { return x % 2 !== 0; }); r; // [1, 5, 9, 15] // 把一个Array中的空字符串删掉,可以这么写: var arr = ['A', '', 'B', null, undefined, 'C', '']; var r = arr.filter(function (s) { return s && s.trim(); // 注意:IE9以下的版本没有trim()方法 }); r; // ['A', 'B', 'C']// 回掉函数 var arr = ['A', 'B', 'C']; var r = arr.filter(function (element, index, self) { console.log(element); // 依次打印'A', 'B', 'C' console.log(index); // 依次打印0, 1, 2 console.log(self); // self就是变量arr return true; });

1.9 forEach,
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法:array.forEach(function(currentValue, index, arr), thisValue)
var arr = [1,2,3,4,5]; arr.forEach(function(e) { console.log(e) }) /* 1 2 3 4 5 */

个人博客地址:https://xunbie.com寻别-个人博客

    推荐阅读