JavaScritp中数组常用操作


JavaScript 中的数组有点类似于 Java 中的 List 但是又比Java中的List更加灵活,JavaScript中的数组还有点双端队列的意思,因为可以pop和push元素等操作。

定义数组

JavaScript

// 使用数组字面量
var arr = []; // 创建一个空数组
var arr = [1, 2, 3]; // 创建一个包含元素的数组
var arr = ['apple', 'banana', 'orange']; // 创建一个包含字符串元素的数组
// 使用  Array  构造函数:
var arr = new Array(); // 创建一个空数组
var arr = new Array(1, 2, 3); // 创建一个包含元素的数组
var arr = new Array('apple', 'banana', 'orange'); // 创建一个包含字符串元素的数组
// 使用 Array.from() 方法:
var arr = Array.from([1, 2, 3]); // 从可迭代对象创建一个数组
// 使用扩展运算符
var arr = [...[1, 2, 3]]; // 通过扩展运算符将可迭代对象转换为数组

Java

int[] arr = {}; // 创建一个包含元素的整数数组
int[] arr = {1, 2, 3}; // 创建一个包含元素的整数数组
String[] fruits = {"apple", "banana", "orange"}; // 创建一个包含字符串元素的数组

// 使用 new 关键字和数组长度来创建数组
int[] arr = new int[5]; // 创建一个长度为5的整数数组,初始值为0
String[] names = new String[3]; // 创建一个长度为3的字符串数组,初始值为null

int[] arr = new int[]{1, 2, 3}; // 创建一个包含元素的整数数组
String[] fruits = new String[]{"apple", "banana", "orange"}; // 创建一个包含字符串元素的数组


合并数组

  1. 使用 concat()
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var mergedArr = arr1.concat(arr2);
console.log(mergedArr); // 输出 [1, 2, 3, 4, 5, 6]
  1. 使用扩展运算符
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var mergedArr = [...arr1, ...arr2];
console.log(mergedArr); // 输出 [1, 2, 3, 4, 5, 6]
  1. 使用 push() 方法和循环
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
for (var i = 0; i < arr2.length; i++) {
  arr1.push(arr2[i]);
}
console.log(arr1); // 输出 [1, 2, 3, 4, 5, 6]

清空数组

  1. 将数组长度设置为0:
var arr = [1, 2, 3];
arr.length = 0;
console.log(arr); // 输出 []
  1. 使用 splice() 方法:
var arr = [1, 2, 3];
arr.splice(0, arr.length);
console.log(arr); // 输出 []
  1. 使用赋值空数组的方式:
var arr = [1, 2, 3];
arr = [];
console.log(arr); // 输出 []

这些方法都可以将数组清空,使其不包含任何元素。请注意,这些方法都会修改原始数组。

添加元素

  1. 使用 push() 方法:可以向数组的末尾添加一个或多个元素。
var arr = [1, 2, 3];
arr.push(4);
console.log(arr); // 输出 [1, 2, 3, 4]
  1. 使用 unshift() 方法:可以向数组的开头添加一个或多个元素。
var arr = [2, 3, 4];
arr.unshift(1);
console.log(arr); // 输出 [1, 2, 3, 4]
  1. 使用 splice() 方法:可以在指定位置插入一个或多个元素。
var arr = [1, 2, 4];
arr.splice(2, 0, 3);
console.log(arr); // 输出 [1, 2, 3, 4]
  1. 使用数组索引赋值的方式:直接通过索引为数组添加元素。
var arr = [];
arr[0] = 1;
arr[1] = 2;
console.log(arr); // 输出 [1, 2]

这些方法都可以用于向数组中添加元素。请注意,这些方法都会修改原始数组。

数组排序

sort() 方法默认按照字符串的Unicode编码进行排序。

var arr = [3, 1, 2, 5, 4];
arr.sort();
console.log(arr); // 输出 [1, 2, 3, 4, 5]

如果要按照其他规则进行排序,可以传递一个比较函数作为 sort() 方法的参数。比较函数接受两个参数,通常被称为 a 和 b ,代表数组中的两个元素。比较函数应返回一个负值、零或正值,以指示两个元素的相对顺序。

var arr = [3, 1, 2, 5, 4];
arr.sort(function(a, b) {
  return a - b; // 升序排序
});
console.log(arr); // 输出 [1, 2, 3, 4, 5]

需要注意的是, sort() 方法会修改原始数组,并且对于包含字符串的数组,排序结果可能不符合预期。因此,在排序之前最好确保数组中的元素类型是一致的。

从对象数组中筛选指定的属性为某值的元素

使用JavaScript的 filter() 方法来从对象数组中筛选指定属性为某个值的元素。 filter() 方法接受一个回调函数作为参数,该回调函数用于定义筛选的条件。

以下是一个示例,演示如何从对象数组中筛选 age 属性为 25 的元素:

var persons = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 25 },
  { name: 'Dave', age: 40 }
];

var filteredPersons = persons.filter(function(person) {
  return person.age === 25;
});

console.log(filteredPersons);

上述示例中, filter() 方法使用一个回调函数,该函数以每个数组元素作为参数进行调用。在回调函数中,我们定义了筛选的条件,即 person.age === 25 ,如果该条件为真,则该元素将被保留在筛选后的数组中。

运行上述代码将输出以下结果:

[
  { name: 'Alice', age: 25 },
  { name: 'Charlie', age: 25 }
]

上述结果是从 persons 数组中筛选出 age 属性为 25 的元素。


评论
  目录