一、数组类型判断
Array.isArray()
将数组作为参数传入,返回值为布尔值
let arr = [1,2,3]
let res = Array.isArray(arr) // true
二、伪数组转数组
…扩展运算符
let str = "hello";
let arr = [...str];
console.log(arr); // ["h", "e", "l", "l", "o"]
三、查找元素
find()和findlndex()
ES5中可以通过indexOf()和lastIndexOf()查找与特定值匹配的元素,而ES6中的find()和findIndex()可以根据某个条件去查找匹配素。
参数为回调函数和回调函数的this值,回调函数的参数同forEach(),分别为:元素,索引,数组本身。
find()返回查找的值,findIndex()返回查找的值的索引,两者都只返回
第一个满足条件的值
let numbers = [1, 2, 3, 4, 5];
console.log(numbers.find(n => n > 3)); // 4
console.log(numbers.findIndex(n => n > 3)); // 3
includes()
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
语法: arr.includes(searchElement, fromIndex) fromIndex
可选
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true
四、数组遍历
forEach()
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法:array.forEach(function(currentValue, index, arr), thisValue)
第一个参数:必填 。当前元素,第二个:可选。当前元素的下标,
第三个:可选。当前元素所属的数组对象
let arr = [1, 2, 3];
arr.forEach((item, index, arr) => {
console.log(item) //1 2 3
})
map()
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
语法: array.map(function(currentValue,index,arr), thisValue)
let arr = [1, 2, 3];
let newArr = arr.map((item, index, arr) => {
return item * 2;
})
console.log(arr) // [1, 2, 3]
console.log(newArr) // [2, 4, 6]
filter()
filter可以过滤数组,包含满足条件的数组项,返回一个新数组
let arr = [1, 2, 3];
let newArr = arr.filter((item, index, arr) => {
return item <= 2;
})
console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2
some()
some返回布尔值,如果有一个满足条件的值则返回true
let arr = [1, 2, 3];
let result = arr.some((item, index, arr) => {
return item < 2;
})
console.log(result) // true
every()
every返回布尔值,如果所有数组项都满足条件则返回true
let arr = [1, 2, 3];
let result = arr.every((item, index, arr) => {
return item < 2;
})
console.log(result) // false