JS 数组操作详解

发布时间:2023-05-24

一、数组的定义和创建

JavaScript 中的数组是一种特殊的对象,可以存储一组数据,并通过索引访问每个数据。 数组有两种定义方式:

var arr1 = new Array();  //构造函数法
var arr2 = [];  //字面量法

通常使用字面量法来创建数组。 使用 push() 和 unshift() 可以向数组中添加元素:

var arr = [1, 2, 3];
arr.push(4);  //[1, 2, 3, 4]
arr.unshift(0);  //[0, 1, 2, 3, 4]

二、数组的遍历和访问

通过下标可以访问数组中的元素:

var arr = ['a', 'b', 'c'];
var element = arr[1];  //b
arr[2] = 'd';

也可以使用 for 循环遍历整个数组:

var arr = ['a', 'b', 'c'];
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

数组中还有很多内置方法可以帮助我们快速遍历数组,比如 forEach(), map(), filter() 等。 forEach() 可以帮助我们对数组中的每个元素执行指定的操作:

var arr = [1, 2, 3];
arr.forEach(function(element) {
  console.log(element);
});

map() 和 filter() 则可以让我们对数组中的元素进行处理和筛选:

var arr = [1, 2, 3];
var mappedArr = arr.map(function(element) {
  return element * 2;
});
var filteredArr = arr.filter(function(element) {
  return element > 1;
});

三、数组的排序和查找

JavaScript 中的数组排序方法是 sort():

var arr = [3, 1, 2];
arr.sort();  //[1, 2, 3]

sort() 方法默认是按照字典序排序,可以传入一个比较函数进行自定义排序。 数组的查找方法包括 indexOf(), lastIndexOf() 和 includes():

var arr = [1, 2, 3];
arr.indexOf(2);  //1
arr.lastIndexOf(2);  //1
arr.includes(2);  //true

四、数组的拼接和分割

可以使用 concat() 方法将多个数组合并为一个新数组:

var arr1 = [1, 2];
var arr2 = [3, 4];
var arr3 = arr1.concat(arr2);  //[1, 2, 3, 4]

使用 join() 方法可以将数组中的元素以指定的分隔符拼接成一个字符串:

var arr = ['a', 'b', 'c'];
var str = arr.join();  //'a,b,c'

使用 split() 方法可以将一个字符串分割成数组:

var str = 'a,b,c';
var arr = str.split(',');  //['a', 'b', 'c']

五、数组的复制和截取

数组的复制可以使用 slice() 方法:

var arr = [1, 2, 3];
var copyArr = arr.slice();

slice() 方法还可以用来截取数组的一部分:

var arr = [1, 2, 3, 4];
var subArr = arr.slice(1, 3);  //[2, 3]

表示从下标为 1 的元素开始,截取 3-1 个元素。

六、数组的去重和反转

可以使用 ES6 的 Set 数据结构进行数组去重:

var arr = [1, 2, 2, 3];
var uniqueArr = Array.from(new Set(arr));  //[1, 2, 3]

也可以通过循环和 indexOf() 方法进行数组去重:

var arr = [1, 2, 2, 3];
var uniqueArr = [];
for (var i = 0; i < arr.length; i++) {
  if (uniqueArr.indexOf(arr[i]) === -1) {
    uniqueArr.push(arr[i]);
  }
}

数组的反转可以使用 reverse() 方法:

var arr = [1, 2, 3];
arr.reverse();  //[3, 2, 1]

总结

数组是 JavaScript 中非常重要的数据结构,常用于存储一组相关的数据。本文对数组的定义、创建、遍历、访问、排序、查找、拼接、分割、复制、截取、去重和反转等方面进行了详细的探讨,希望对读者能够有所帮助。