JavaScript中的数组是一个非常重要且灵活的数据结构,用于存储有序的元素集合。以下是关于JavaScript数组的详细总结:
let arr = [1, 'a', {x: 2}];let arr = new Array(1, 2, 3);(注意单个数字参数会创建空槽数组)。Array.from():将类数组对象(如arguments、NodeList)或可迭代对象(如Set)转换为数组。Array.of():解决构造函数歧义,如Array.of(7) 创建 [7]。arr.length获取或修改长度(扩展或截断数组)。[1, , 3],某些方法会跳过空槽。push(), pop(), unshift(), shift(), splice()。sort(), reverse()。fill(), copyWithin()。concat(), slice()。join(), flat(), flatMap()。filter(), map()。forEach()(无法中断)。every(), some(), includes()。find(), findIndex(), indexOf()。reduce(), reduceRight()。[...arr]用于合并数组或传递参数(如Math.max(...arr))。for...of遍历,或直接使用keys(), values(), entries()方法。flat(depth)和flatMap()处理嵌套数组。push/pop在数组末尾操作,时间复杂度O(1)。shift/unshift在开头操作需移动元素,时间复杂度O(n)。Array.isArray(arr)(因typeof arr返回"object")。Array.from(arrayLike)或[...arrayLike]。slice(), concat(), 展开运算符。JSON.parse(JSON.stringify(arr))(局限:不支持函数、循环引用)。map()跳过空槽,而join()视作空字符串(如[1,,3].join() → "1,,3")。arr.filter().map().reduce())。arr.length = 0。[...new Set(arr)]。[a, b] = [b, a](解构赋值)。undefined的元素会被处理。new Array(3)生成[empty × 3],而非[undefined, undefined, undefined]。掌握这些知识后,可以更高效地利用JavaScript数组处理数据,并根据需求选择合适的方法和优化策略。
热门推荐:
0