es6之数组方法

一丶类数组

const divs = document.getElementsByTagName('div')
console.log(divs) //HTMLCollection[]
console.log(divs instanceof Array) //false

1.用es5的方法将类数组变为数组,借助slice方法

const arr = Array.prototype.slice.call(divs)
console.log(arr) // []
console.log(arr instanceof Array) // true

2.介绍ES6中的数组的新方法Array.from(),将类数组转换为数组

const arr = Array.from(divs)
console.log(arr) // []
console.log(arr instanceof Array) // true

二丶Array.of() 方法
1.先介绍用new方法创建数据的方式

const arr = new Array(1, 2, 3)
console.log(arr) //[1, 2, 3]

const arr1 = new Array(3)
console.log(arr1) //[empty × 3]  这里生成一个长度为3的空数组

2.再用Array.of()方法

const arr = Array.of(1, 2, 3)
console.log(arr)

const arr1 = Array.of(3)
console.log(arr1)

const arr2 = Array.of(1, 'id', true, [1, 2], { 'name': 'ly' })
console.log(arr2) //[1, "id", true, Array(2), {…}]

三丶fill()方法
fill()方法,该方法有三个参数:
fill(value, start, end)
value:想要替换的内容。
start:开始位置(数组的下标),可以省略。
end:替换结束位置(数组的下标),如果省略不写就默认为数组结束。

const arr = new Array(3).fill(5)
console.log(arr) //[5, 5, 5]

let arr1 = [1, 2, 3, 4, 5]
arr1 = arr1.fill(0)
console.log(arr1) //[0,0,0,0,0]

let arr2 = [1, 2, 3, 4, 5]
arr2 = arr2.fill(88, 1, 3)
console.log(arr2) //[1, 88, 88, 4, 5]

四丶includes()方法

const arr = [1, 2, 3]
console.log(arr.indexOf(2)) // 1 找到就输出找到元素的下标,没有找到的话则返回-1
console.log(arr.indexOf(4)) // -1

const arr2 = [1, 2, 3, NaN]
console.log(arr2.indexOf(NaN)) // -1
console.log(NaN == NaN)  //false

const arr3 = [1, 2, 3, NaN]
console.log(arr3.includes(2)) //true
console.log(arr3.includes(4)) //false
console.log(arr3.includes(NaN)) //true

五,copyWithIn(),个人感觉可能用不到,不如用splice()方法

上一篇:js 差集


下一篇:js--数组合并并且去重