数组创建
1.Array.of():将参数中所有值作为元素形成数组。
2.Array.from():将类数组对象或可迭代对象转化为数组。 例如:map对象、set对象、字符串等
参数说明:Array.from(arrayLike, mapFn, thisArg)
arrayLike:想要转换的类数组对象或可迭代对象。
mapFn:可选,map 函数,用于对每个元素进行处理,放入数组的是处理后的元素。
thisArg:可选,用于指定 map 函数执行时的 this 对象。
注意:
- 类数组对象:一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。
- 如果没有length属性,则返回空数组
- 元素属性名不为数值且无法转换为数值,返回长度为 length 元素值为 undefined 的数组
数组扩展的方法:
查找:数组空位处理为 undefined
find(): 查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。
findIndex(参数1,参数2) :查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。
参数1:回调函数;
参数2(可选):指定回调函数中的 this 值
填充:
fill(参数1,参数2,参数3):将一定范围索引的数组元素内容填充为单个指定的值。
参数1:用来填充的值
参数2:被填充的起始索引
参数3(可选):被填充的结束索引,默认为数组末尾
遍历:
entrys():遍历键值对。
keys():遍历键名。
values():遍历键值
包含:
includes(参数1,参数2) :数组是否包含指定值。
参数1:包含的指定值
参数2()可选:搜索的起始索引,默认为0
注意:与 Set 和 Map 的 has 方法区分;Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。
嵌套数组转一维数组:
flat(参数):参数代表几维数组降维
封装一个myflat函数:
function flatten(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]));
}else {
result.push(arr[i])
} }
return result
}
扩展运算符(...)
作用:复制数组,合并数组