JavaScript中的数组Array的操作

JavaScript中的数组Array

数组的操作

1. 添加对象到数组

要向数组中添加一个对象,你可以使用 push() 方法或 unshift() 方法。

// 创建一个对象
var newObj = {id: 1, name: 'John'};

// 添加到数组末尾
array.push(newObj);

// 或者添加到数组开头
array.unshift(newObj);
2. 从数组中删除对象

你可以使用 pop() 方法从数组末尾删除对象,或者使用 shift() 方法从数组开头删除对象。你还可以使用 splice()
方法根据索引删除指定位置的对象。

// 从末尾删除一个对象
var deletedObj = array.pop();

// 从开头删除一个对象
var deletedObj = array.shift();

// 根据索引删除对象
var index = array.findIndex(obj => obj.id === 1);
if (index !== -1) {
    var deletedObjs = array.splice(index, 1); // 删除指定位置的对象
}
3. 修改数组中的对象

你可以直接通过索引访问数组中的对象,并修改其属性。

// 根据索引修改对象属性
array[0].name = 'Alice';

// 使用 findIndex 找到对象的索引
var index = array.findIndex(obj => obj.id === 1);
if (index !== -1) {
    // 修改对象的属性
    array[index].name = 'Bob';
}

4. 计算属性

操作数组中的对象,包括添加、删除和修改。

使用reduce()方式,简化数组的操作,减少代码量。
关于reduce的详细介绍:https://blog.csdn.net/weixin_39570423/article/details/138953849

1. 求和
const numbers = [1, 2, 3, 4, 5];
let sum = 0;
for (let i = 0; i < numbers.length; i++) {
    sum += numbers[i];
}
console.log(sum); // 输出: 15
// 使用 reduce() 方法
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出: 15
2. 展开数组
const numberArray = [[1, 2], [3, 4], [5, 6]];
const newnumberArray = numberArray.reduce((start, curr) => start.concat(curr), []);
// 结果: [1, 2, 3, 4, 5, 6]
3. 分组
const students = [
    {name: 'Alice', age: 11},
    {name: 'Bob', age: 11},
    {name: 'Charlie', age: 12},
    {name: 'Dave', age: 12}
];
// 使用 reduce 方法根据 age 属性进行分组
const groupedStudents = students.reduce((groups, student) => {
    const age = student.age;
    if (!groups[age]) {
        groups[age] = [];
    }
    groups[age].push(student);
    return groups;
}, {});

// 结果
// {
//     '11' : [{name: 'Alice', age: 11}, {name: 'Bob', age: 11}],
//     '12' : [{name: 'Charlie', age: 12}, {name: 'Dave', age: 12}]
// }
4. 过滤

查询年龄11和12的学生

const students = [
    {name: 'Alice', age: 11},
    {name: 'Bob', age: 12},
    {name: 'Charlie', age: 13},
    {name: 'Dave', age: 14}
];

// 使用 reduce 方法查询年龄为11和12岁的学生
const filteredStudents = students.reduce((filtered, student) => {
    if (student.age === 11 || student.age === 12) {
        filtered.push(student);
    }
    return filtered;
}, []);
console.log(filteredStudents);
// 普通的查询方式
const students = [
    {name: 'Alice', age: 11},
    {name: 'Bob', age: 12},
    {name: 'Charlie', age: 13},
    {name: 'Dave', age: 14}
];
// 查询年龄为11和12岁的学生
const filteredStudents = students.filter(student => student.age === 11 || student.age === 12);
console.log(filteredStudents);
5. 遍历
  • 使用 for 循环遍历数组

使用传统的 for 循环可以遍历数组的每个元素。

const numbers = [1, 2, 3, 4, 5];

for (let i = 0; i < numbers.length; i++) {
    console.log(numbers[i]);
}
  • 使用 forEach 方法遍历数组

forEach 方法可以遍历数组的每个元素,并对每个元素执行指定的操作。

numbers.forEach(number => {
    console.log(number);
});
  • 使用 map 方法遍历数组

map 方法可以遍历数组的每个元素,并对每个元素执行指定的操作,然后返回一个新的数组。

const squaredNumbers = numbers.map(number => {
    return number * number;
});

console.log(squaredNumbers);
  • 使用 filter 方法遍历数组

filter 方法可以遍历数组的每个元素,并根据指定条件过滤出符合条件的元素,然后返回一个新的数组。

const evenNumbers = numbers.filter(number => {
    return number % 2 === 0;
});

console.log(evenNumbers);
  • 使用 for…of 循环遍历数组

for…of 循环可以遍历数组的每个元素。

for (const number of numbers) {
    console.log(number);
}
6. 删除
  • 使用 splice() 方法删除元素.

splice() 方法会直接修改原数组

let numbers = [1, 2, 3, 4, 5];

// 删除数组中索引为 2 的元素
numbers.splice(2, 1);

console.log(numbers); // 输出 [1, 2, 4, 5]
  • 使用 filter() 方法删除元素.

filter() 方法可以根据指定条件过滤数组中的元素,并返回一个新的数组,你可以使用它来删除特定元素.

let numbers = [1, 2, 3, 4, 5];

// 使用 filter() 方法删除数组中的某个元素
numbers = numbers.filter(number => number !== 3);

console.log(numbers); // 输出 [1, 2, 4, 5]

  • 使用 pop() 方法删除末尾元素.

pop() 方法可以删除数组末尾的元素,并返回被删除的元素。

let numbers = [1, 2, 3, 4, 5];

numbers.pop(); // 删除末尾的元素

console.log(numbers); // 输出 [1, 2, 3, 4]
  • 使用 shift() 方法删除开头元素.

shift() 方法可以删除数组首个元素,并返回被删除的元素。

let numbers = [1, 2, 3, 4, 5];

numbers.shift(); // 删除首个元素

console.log(numbers); // 输出 [2, 3, 4, 5]
  • 使用 slice() 方法删除指定范围的元素.

slice() 方法可以返回数组的一部分,你可以使用它来删除指定范围的元素。但是要注意,slice() 方法不会修改原数组,而是返回一个新的数组。

let numbers = [1, 2, 3, 4, 5];

numbers = numbers.slice(0, 2).concat(numbers.slice(3)); // 删除索引为 2 的元素

console.log(numbers); // 输出 [1, 2, 4, 5]
  • 使用 delete 操作符删除指定索引处的元素.

你还可以使用 delete 操作符来删除指定索引处的元素。但是要注意,delete操作符不会修改数组的长度,并且删除后的元素值变为
undefined。

let numbers = [1, 2, 3, 4, 5];

delete numbers[2]; // 删除索引为 2 的元素

console.log(numbers); // 输出 [1, 2, undefined, 4, 5]

简化数组的操作

关于reduce的详细介绍和使用:

https://blog.csdn.net/weixin_39570423/article/details/138953849

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值