数组的创建方式有使用字面量[]、构造函数new array()两种,其中[]更简洁;常用方法包括push、pop、shift、unshift、splice、slice、concat、join、indexof、foreach、map、filter、reduce、sort等,涵盖增删改查与遍历操作;遍历数组可通过for循环、foreach()或for...of实现,各有适用场景;数组是引用类型,赋值时传递的是引用,修改会影响原数组,可通过slice、concat或扩展运算符实现深拷贝;去重方法主要有利用set去重、filter结合indexof、reduce累积判断等方式,其中set方式最简洁高效。

JS中的数组,说白了,就是用来装东西的容器。它可以装数字,字符串,对象,甚至其他的数组。理解的关键在于,数组是有序的,每个元素都有一个索引,从0开始。掌握了索引,就掌握了数组。
数组就是有序列表,通过索引访问。
数组的基本操作,无非就是增删改查,还有一些常用的方法,比如排序、过滤等等。
创建数组,最常见的就是用
[]
let arr = [1, 2, 3]
new Array()
let arr = new Array(1, 2, 3)
let arr = new Array(3)
[]
new Array(3)
数组的方法很多,常用的有:
splice()
forEach()
map()
filter()
reduce()
sort()
遍历数组,最基本的就是用
for
let arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}ES5之后,可以使用
forEach()
let arr = [1, 2, 3];
arr.forEach(function(item, index) {
console.log(item, index);
});还可以使用
for...of
let arr = [1, 2, 3];
for (let item of arr) {
console.log(item);
}for
forEach()
break
for...of
是的,数组是引用类型。这意味着,当你把一个数组赋值给另一个变量时,实际上是把数组的引用赋值给了这个变量。这两个变量指向的是同一个数组对象。 修改其中一个变量的值,会影响到另一个变量。
let arr1 = [1, 2, 3]; let arr2 = arr1; arr2.push(4); console.log(arr1); // [1, 2, 3, 4] console.log(arr2); // [1, 2, 3, 4]
如果想要复制一个数组,而不是复制引用,可以使用
slice()
concat()
let arr1 = [1, 2, 3]; let arr2 = arr1.slice(); // 或者 let arr2 = arr1.concat(); arr2.push(4); console.log(arr1); // [1, 2, 3] console.log(arr2); // [1, 2, 3, 4]
或者使用ES6的扩展运算符:
let arr1 = [1, 2, 3]; let arr2 = [...arr1]; arr2.push(4); console.log(arr1); // [1, 2, 3] console.log(arr2); // [1, 2, 3, 4]
这些方法都会创建一个新的数组对象,而不是复制引用。
数组去重,也是一个常见的面试题。 最简单的方法就是使用
Set
let arr = [1, 2, 2, 3, 3, 3]; let uniqueArr = [...new Set(arr)]; console.log(uniqueArr); // [1, 2, 3]
也可以使用
filter()
let arr = [1, 2, 2, 3, 3, 3];
let uniqueArr = arr.filter(function(item, index, array) {
return array.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3]或者使用
reduce()
let arr = [1, 2, 2, 3, 3, 3];
let uniqueArr = arr.reduce(function(acc, item) {
if (acc.indexOf(item) === -1) {
acc.push(item);
}
return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3]使用
Set
filter()
reduce()
以上就是如何理解JS中的数组?数组的基本操作有哪些的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号