1)数组创建
(1)Array.of():将参数中所有值作为元素形成数组。
var arr = Array.of(1,2,"xiaozhang",true)
console.log(arr);
(2)Array.from():将类数组对象或可迭代对象转化为数组。
var arr = [1,2,3]
var arr2 = Array.from(arr)
console.log(arr2)
let arr = Array.from({
0: '1',
1: '2',
2: 3,
length: 3
});
console.log(arr);
var s1 = new Set([10, 20, 30])
var arr = Array.from(s1, function (el) {
console.log(el);
return el
})
console.log(arr);
2)类数组对象:
一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。
var re = {
0:10,
1:20,
2:30,
length:3
}
var arr = Array.from(re)
console.log(arr);
1) 如果类数组中没有 length 属性,则返回空数组
var re = {
0:10,
1:20,
2:30,
}
var arr = Array.from(re)
console.log(arr);
2)如果元素属性名不为数值且无法转换为数值,返回长度为 length 元素值为 undefined 的数组
var re = {
a:10,
blur:20,
c:30,
length:3
}
var arr = Array.from(re)
console.log(arr);
3)扩展的方法
(一)查找:
(1)find(): 查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。
var arr = Array.of(1,2,44,5,6,22,97)
var re = arr.find(function(el) {
if (el > 20) {
return true
}
})
console.log(re);
(2) findIndex():查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。
var arr = Array.of(1,2,44,5,6,22,97)
var re = arr.findIndex(function(el) {
if (el > 20) {
return true
}
})
console.log(re);
(二)填充:
fill():将一定范围索引的数组元素内容填充为单个指定的值。并且会改变原数组。
var arr = [1,2,45,346,67,434,3]
var arr2 = arr.fill("*",2,5)
console.log(arr2);
(三)遍历:
(1)entries(): 遍历键值对。
var arr = ["aa","33","xiaozhang"]
var re = arr.entries()
for (const [key,value] of re) {
console.log(key,value);
}
(2)keys():遍历键名。
var arr = ["aa","33","xiaozhang"]
var re = arr.keys()
for (const key of re) {
console.log(key);
}
(3)values():遍历键值
var arr = ["aa","33","xiaozhang"]
var re = arr.values()
for (const value of re) {
console.log(value);
}
(四) 包含:
includes():数组是否包含指定值。注意:与 Set 和 Map 的 has 方法区分;Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。
var arr = ["aa",33,"xiaozhang"]
var re = arr.includes(33)
console.log(re);
(五)嵌套数组转一维数组: flat(),参数为指定嵌套的层数
var arr = [[10,20,30,40],40,50,[[60,70],80,[90,100]]]
var arr2 = arr.flat(2)
console.log(arr2);
如果flat()参数为Infinity,则不管嵌套多少层,全部转为一维数组
var arr = [[10,[20,30],40],40,[50],[[60,70],80,[90,100]]]
var arr2 = arr.flat(Infinity)
console.log(arr2);
3)扩展运算符(...)
(1)复制数组
var arr = [1,2,3,4]
var arr2 = [...arr]
console.log(arr2);
(2)合并数组
var arr = [1,2,3,4]
var arr2 = [3,4,5,6]
var arr3 = [...arr,...arr2]
console.log(arr3);