文章如有错误请联系我 [email protected]
Array.of() 创建数组 参数就是数组参数
Array.of(3) // [3]
var a = [1,2] Array.of(a) // [1,2]
Array.of() 和 Array()的区别是前者直接讲参数编程数组,后者的参数是创建一个长度为参数的数组
Array.from() 方法可讲一个类似数组或可迭代对象创建一个数组实例
var arr1 = [1,2] Array.from(arr1) // [1,2]
var amz = 'amz' Array.from(amz) // ['a','m','z']
var num = '123' Array.from(num,x => x * 2) //[2,4,6]
它也可以讲function里面的arguments变成数组是实例 Array.from(arguments)
Array.isArray() 判断传入的是否为数组是实例
Array.isArray([1,2]) // true
Array.isArray(arguments) //false arguments是函数的参数哦
Array.prototype.concat() 合并数组(创建出新的数组)
let a = ['1','2'] let b = ['3','a'] let c = a.concat(b) c // ['1','2','3','a']
let d = a.concat('3','b') d // ['1','2','3','b']
Array.prototype.copyWithin() 复制数组的一部分到另一部分(修改原数组)
三个参数 a1 a2 a3
a1 要复制的东西从那里开始展示出来
a2 从那里开始复制 默认值是0 即为从数组开始复制
a3 复制到那里结束,默认值是数组最后一个
['a','b','c'].copyWithin(1) //['a','a','b'] 等价值 ['a','b','c'].copyWithin(1,0,3) //['a','a','b']
Array.prototype.every() 接受一个函数,用来判断数组每一项值,全部为true则返回true 否返回false
[1,2,3].every(x => x > 2) //false
[2,4,6].every(x => x > 1) // true
Array.prototype.fill() 替换数组 里面的某一部分 会改变原数组
[1,2,3,4,5].fill(8) // [8,8,8,8,8]
[1,2,3,4,5].fill(8,1) // [1,8,8,8,8]
[1,2,3,4,5].fill(8,1,3) // [1,8,8,4,5]
Array.prototype.filter() 接受一个函数,测试数组,通过的元素创建一个新数组
[1,2,3,4,5,6].filter(x => x > 2) //[3,4,5,6]
Array.prototype.find() 接受一个函数,返回数组通过函数测试的第一个值
[1,2,3,4,5,6].find(x => x > 2) //3
Array.prototype.findIndex() 接受一个函数,返回数组通过函数测试的第一个值的索引
[1,2,3,4,5].findIndex(x => x > 2) //2
Array.prototype.forEach() 对数组的每一项提供一个函数 一般用户循环数组
[1,2,3].forEach(x => { console.log(x*2) } ) // 2 4 6
Array.prototype.includes() 判断数组是否有某值
[1,2,3].includes(4) //false
[1,2,3].includes(2) //true
Array.prototype.indexOf() 返回在数组中可以找到给定元素的第一个索引
[1,2,3,4,2,3].indexOf(2) // 1
[1,2,3,4,2,3].indexOf(2,2) // 4 //第二个参数是从第几位开始找
Array.prototype.join() 吧数组分割成字符串,传值就是分割符
[1,2,3].join('=') // '1=2=3'
[1,2,3].join() // '1,2,3' 不穿值 默认为,
Array.prototype.map() 创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数
[1,2,3].map(x => x*2) // [2,4,6]
Array.prototype.pop() 从数组的后面删除一个元素并返回删除的那个元素
var arr = [1,2,3] arr.pop() // 3 arr // [1,2]
Array.prototype.push() 从数组的末尾添加一个或多个元素 并返回修改过后数组的长度
var arr = [1,2,3]
arr.push('a','b') // 5 arr // [1,2,3,'a','b']
Array.prototype.reduce() 数组的一个累加器,对数组的每一个值应用一个函数(第一个参数是 累加的值 第二个参数是即将要加的哪个东东) 第二个参数是 累加的起始值
var arr = [1,2,3].reduce(function (a,b) {return a+b},0)
arr //6
var arr = [[1, 2], [3, 4], [5, 6]]
var s = arr.reduce(function (a,b) { return a.concat(b) }, [])
s // [1, 2, 3, 4, 5, 6]
Array.prototype.reduceRight() 同上 累加 从右到左加
var s = arr.reduceRight(function (a,b) { return a.concat(b) }, [])
s // [5,6,3,4,1,2]
Array.prototype.reverse() 反转数组的排序
[1,2,3,4].reverse() // [4, 3, 2, 1]
Array.prototype.shift() 删除数组第一个元素 改变原数组,返回删除的那个元素
var arr = [1,2,3] arr.shift() // 1 arr //[2,3]
Array.prototype.slice() 复制数组从某一位到某一位成立一个新数组 第一个参数 从第几位截取 第二个参数 到第几位结束
var a = [1,2,3,4]
var b = a.slice(2) b // [3,4]
var c = a.slice(1,3) c // [2,3]
Array.prototype.some() 给数组一个函数测试每一项,有一个通过则返回true
var a = [1,2,32,4]
a.some(x => x===1) //true
Array.protptype.sort() 数组排序,可接受函数
var a = [1,4,2,5,7,3,4]
a.sort() //[1, 2, 3, 4, 4, 5, 7] 这样调用浏览器兼容不理想 可能不会返回这样的排序
var arr = a.sort((a, b) => {return b - a }) arr //[7,5,4,4,3,2,1]
Array.prototype.splice() 删除现有添加新元素 三个参数是从第几位删除几位插入什么什么 返回删除的元素
var a1 = [1,2,3,4,5],a2 = [1,2,3,4,5],a3 = [1,2,3,4,5]
a1.splice(2) // [3, 4, 5] a1 // [1, 2]
a2.splice(2,2) //[3,4] a2 //[1,2,5]
a3.splice(2,2,'abc') // [3,4] a3 //[1, 2, "abc", 5]
Array.prototype.toLocaleString() 数组返回和toString一样,数字返回货币格式(千位分隔),对象返回[ObjectObject] 日期返回本地格式化日期
[1,2,3].toLocaleString() // '1,2,3'
Array.prototype.toString() 将数组转化为字符串
[1,2,3].toString() // '1,2,3'
Array.prototype.unshift() 方法将一个或多个元素添加到数组的开头 返回数组改变后的长度
var arr = [1,2,3]
arr.unshift('abc') // 4 arr // ["abc", 1, 2, 3]
Array.prototype.lastIndexOf() 找数组的最后一次显示的某位元素的索引
var arr = [2,3,2,4,5,2]
arr.lastIndexOf(2) //5
arr.lastIndexOf(2,1) // 0 第二个参数是从第几位开始向前检索