Array.from()
// 1.
Array.from('abc')//['a','b','c']
// 2.
let arr=[1,2,3];
Array.from(arr,(item)=>{console.log(item)})//1,2,3
【返回值】:新的数组实例
Array.isArray()
【作用】:判断是否为数组.
Array.isArray([1]) //true
【返回值】:布尔值.
Array.of()
【作用】:生成数组
Array.of(1)//[1] 创建新的数组,参数是任意类型
【返回值】:新的数组实例
concat()
【作用】:合并数组
let arr=[1,2],arr2=[3,4],arr3=[5,6];
let newArr=arr.concat(arr2,arr3) //[1,2,3,4,5,6]
console.log(arr) //[1,2]
【返回值】:新的数组实例,不改变原数组
every()
【作用】:数组中所有元素是否都满足条件
let arr=[1,2,3];
arr.every(item => item > 1)//false
arr.every(item => item > 0)//true
【返回值】:布尔值
filter()
【作用】:获取数组中满足条件的元素
let arr=[1,2,3];
let newArr=arr.filter(item => item > 1) //[2,3]
【返回值】:满足条件的元素数组,不改变原数组
find()
【作用】:查找数组中符合条件第一个元素的值
let arr=[1,2,3],arr2=[{val:1},{val:2},{val:3}];
arr.find(item => item >= 1)//1
arr2.find(item => item.val > 1) //{val:2}
//和filter的区别:find方法返回符合条件的第一个元素,filter则是返回符合条件的所有元素,返回新的数组
【返回值】:符合条件的元素,不改变原数组
findIndex()
【作用】:查找数组中满足条件的第一个元素的索引
let arr=[1,2,3];
arr.findIndex(item => item > 1) // 1
arr.findIdnex(item => item > 4) //-1
【返回值】:第一个符合条件的索引,没有则返回 -1
flat()
【作用】:数组扁平化
let arr = [1, 2, [3, 4]];
arr.flat() //[1, 2, 3, 4]
let arr1=[1,[2,[3]]]
arr1.flat(2) // [1, 2, 3];
//使用 Infinity,可展开任意深度的嵌套数组
arr1.flat(Infinity) //[1, 2, 3]
【返回值】:新的数组,不改变原数组
forEach()
【作用】:遍历数组
【返回值】:无返回值
includes()
【作用】:查找数组中是否包含某一项
let arr=[1,2,3];
arr.includes(2) //true
let arr2=[1,2,1,3,4,5,6];
// 第二个参数为查找的索引起始位置(包含),为负数则从后向前的绝对值
arr2.includes(2,1) //true
arr2.includes(2,2) //false
arr2.includes(2,-6) //true
let str='abc';
// 也可以查找字符串是否包含某个字符
str.includes('a') //true
【返回值】:布尔值
indexOf()
【作用】:数组中(字符串)包含指定元素的第一个索引
// 特别说明
// indexOf的第二个参数,从第几个开始,为负数则从后向前
let arr=[1,2,3,2];
arr.indexOf(2,2) // 3
arr.indexOf(2,5) // -1 为正数的时候,如果大于length,则返回-1
arr.indexOf(2,-3) // 1
arr.indexOf(2,-5) // 1 如果绝对值大于length,则从数组第一项开始找
【返回值】:索引值或 -1
join()
【作用】:将数组分割成字符串并进行连接
【返回值】:字符串,不改变原数组
lastIndexOf()
【作用】:数组(字符串)中最后一个指定元素的索引
//特别说明
//lastIndexOf第二个参数
let arr=[1,2,3,2];
arr.lastIndexOf(2,2) // 1 正数为查找到第几个索引为止
arr.lastIndexOf(2,-3) //1 负数为从后向前,查找到第几个索引(绝对值),大于length则返回 -1
【返回值】:索引值或 -1
map()
【作用】:遍历数组
【返回值】:元素执行函数后组成的新数组
pop()
【作用】:删除数组的最后一项
【返回值】:删除的元素,改变原数组
push()
【作用】:数组后添加一或多项
【返回值】:数组的长度,改变原数组
shift()
【作用】:删除数组第一项
【返回值】:删除的元素,改变原数组
unshift()
【作用】:数组前添加一项或多项
【返回值】:数组的长度,改变原数组
reduce()
【作用】:对数组中的每个元素按序执行一个 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值
- 参数:callbackFn, initialValue
- callbackFn
- previousValue: 上一次调用的返回值
- currentValue: 当前正在处理的数据项
- currentIndex: 当前正在处理数据项的索引
- array: 数据源
- initialValue: 为第一次调用
callback
函数时参数 previousValue 的值
【返回值】:使用 reducer回调函数遍历整个数组后的结果。不改变原数组
reverse()
【作用】:翻转数组
【返回值】:翻转后的数组,改变原数组
slice()
【作用】:返回数组或字符串的一部分
let arr=[1,2,3,4]
arr.slice() // [1,2,3,4]
arr.slice(2) //[3]
arr.slice(4) // []
arr.slice(-2) // [3,4] 如果该参数为负数,表示从原数组中的倒数第几个元素开始提取到最后一个
arr.slice(2,3)//3 不包含end
【返回值】:新数组或新的字符串,不改变原数组
some()
【作用】:数组中是否有元素满足传入的函数条件
【返回值】:布尔值
sort()
【作用】:数组排序
如果指明了 fn,那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:
如果 fn(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
如果 fn(a, b) 等于 0 , a 和 b 的相对位置不变。
如果 fn(a, b) 大于 0 , b 会被排列到 a 之前。
fn(a, b) 必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。
【返回值】:新数组,改变原数组
splice()
【作用】:删除或替换现有元素或者原地添加新的元素来修改数组
let arr = [1,2,3,4];
arr.splice(2) // [3,4] //arr:[1,2]
arr.splice(-2) // [3,4] //arr:[1,2]
arr.splice(2,2) // [3,4] //arr:[1,2]
arr.splice(2,0,2)//[] //arr:[1,2,2,3,4]
arr.splice(2,1,2) // [] arr:[1,2,2,4]
【返回值】:被删除元素组成新数组,改变原数组
toString()
【作用】:将数组转换成字符串
和join()的区别:join()可以指定连接符
【返回值】:字符串,不改变原数组