返回

数组处理:掌握常见操作,提升数据操控能力

前端

数组是 JavaScript 中一种常见的数据结构,用于存储有序的数据集合。数组可以存储任何类型的数据,包括数字、字符串、布尔值、对象和数组本身。

数组的操作非常丰富,包括遍历、排序、筛选、查找、删除、添加、修改、扁平化、连接、反转、去重、拼接、截取、查找最小值、查找最大值、连接、切片、克隆、比较、复制、合并、交集、并集、差集、拷贝、替换、循环、迭代和递归。

掌握这些操作,将显著提升您操控数据的能力。

以下是一些数组常见操作的示例:

  • 遍历数组:
const arr = [1, 2, 3, 4, 5];

arr.forEach((item, index) => {
  console.log(`Item at index ${index}: ${item}`);
});
  • 排序数组:
const arr = [5, 2, 1, 4, 3];

arr.sort(); // Sort the array in ascending order

console.log(arr); // Output: [1, 2, 3, 4, 5]
  • 筛选数组:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const evenNumbers = arr.filter((item) => {
  return item % 2 === 0;
});

console.log(evenNumbers); // Output: [2, 4, 6, 8, 10]
  • 查找数组中的元素:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const index = arr.indexOf(5);

console.log(index); // Output: 4
  • 删除数组中的元素:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

arr.splice(4, 1); // Remove the element at index 4

console.log(arr); // Output: [1, 2, 3, 4, 6, 7, 8, 9, 10]
  • 添加元素到数组中:
const arr = [1, 2, 3, 4, 5];

arr.push(6); // Add an element to the end of the array

console.log(arr); // Output: [1, 2, 3, 4, 5, 6]
  • 修改数组中的元素:
const arr = [1, 2, 3, 4, 5];

arr[2] = 6; // Modify the element at index 2

console.log(arr); // Output: [1, 2, 6, 4, 5]
  • 扁平化数组:
const arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

const flatArray = arr.flat();

console.log(flatArray); // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 连接数组:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];

const newArr = arr1.concat(arr2);

console.log(newArr); // Output: [1, 2, 3, 4, 5, 6]
  • 反转数组:
const arr = [1, 2, 3, 4, 5];

arr.reverse();

console.log(arr); // Output: [5, 4, 3, 2, 1]
  • 去重数组:
const arr = [1, 2, 3, 4, 5, 1, 2, 3];

const uniqueArr = [...new Set(arr)];

console.log(uniqueArr); // Output: [1, 2, 3, 4, 5]
  • 拼接数组:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];

const newArr = arr1.join(',') + ',' + arr2.join(',');

console.log(newArr); // Output: "1,2,3,4,5,6"
  • 截取数组:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const newArr = arr.slice(2, 5);

console.log(newArr); // Output: [3, 4, 5]
  • 查找最小值:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const minValue = Math.min(...arr);

console.log(minValue); // Output: 1
  • 查找最大值:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const maxValue = Math.max(...arr);

console.log(maxValue); // Output: 10
  • 连接数组:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];

const newArr = arr1.concat(arr2);

console.log(newArr); // Output: [1, 2, 3, 4, 5, 6]
  • 切片数组:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const newArr = arr.slice(2, 5);

console.log(newArr); // Output: [3, 4, 5]
  • 克隆数组:
const arr = [1, 2, 3, 4, 5];

const newArr = [...arr];

console.log(newArr); // Output: [1, 2, 3, 4, 5]
  • 比较数组:
const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];

console.log(arr1 === arr2); // Output: false
  • 复制数组:
const arr = [1, 2, 3, 4, 5];

const newArr = arr.slice();

console.log(newArr); // Output: [1, 2, 3, 4, 5]
  • 合并数组:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];

const newArr = [...arr1, ...arr2];

console.log(newArr); // Output: [1, 2, 3, 4, 5, 6]
  • 交集数组:
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 4, 5, 6, 7];

const intersection = arr1.filter((item) => {
  return arr2.includes(item);
});

console.log(intersection); // Output: [3, 4, 5]
  • 并集数组:
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [3, 4, 5, 6