数组操作1.0

数组在编程中是非常基础和重要的数据结构,它允许我们存储和操作一系列的元素。在JavaScript中,数组提供了许多内置的方法,使得我们可以方便地对数组进行各种操作。以下是一些数组的常见使用方法:

1. 访问数组元素

通过索引可以访问数组中的元素:

let array = ['apple', 'banana', 'cherry'];
console.log(array[0]); // 输出 'apple'

2. 修改数组元素

通过索引可以修改数组中的元素:

let array = ['apple', 'banana', 'cherry'];
array[1] = 'orange';
console.log(array); // 输出 ['apple', 'orange', 'cherry']

3. 遍历数组

可以使用for循环、for…of循环或forEach方法遍历数组:

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

// 使用for循环
for (let i = 0; i < array.length; i++) {
    console.log(array[i]);
}

// 使用for...of循环
for (let value of array) {
    console.log(value);
}

// 使用forEach方法
array.forEach(function(value) {
    console.log(value);
});

4. 添加元素

可以使用push方法在数组末尾添加元素,或使用unshift方法在数组开头添加元素:

let array = [1, 2, 3];
array.push(4); // 在数组末尾添加元素
console.log(array); // 输出 [1, 2, 3, 4]

array.unshift(0); // 在数组开头添加元素
console.log(array); // 输出 [0, 1, 2, 3, 4]

5. 删除元素

可以使用pop方法删除数组末尾的元素,或使用shift方法删除数组开头的元素,也可以使用splice方法删除任意位置的元素:

let array = [1, 2, 3, 4, 5];
let lastElement = array.pop(); // 删除并返回数组末尾的元素
console.log(array); // 输出 [1, 2, 3, 4]
console.log(lastElement); // 输出 5

let firstElement = array.shift(); // 删除并返回数组开头的元素
console.log(array); // 输出 [2, 3, 4]
console.log(firstElement); // 输出 1

array.splice(1, 1); // 从索引1开始,删除1个元素
console.log(array); // 输出 [2, 4]

6. 查找元素

可以使用indexOf或findIndex方法查找元素的索引,或使用includes方法检查数组是否包含某个元素:

let array = [1, 2, 3, 4, 5];
let index = array.indexOf(3); // 查找元素3的索引
console.log(index); // 输出 2

let containsElement = array.includes(6); // 检查数组是否包含元素6
console.log(containsElement); // 输出 false

7. 转换数组

可以使用map、filter和reduce等方法对数组进行转换:

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

// 使用map方法转换数组中的每个元素
let doubled = numbers.map(function(num) {
    return num * 2;
});
console.log(doubled); // 输出 [2, 4, 6, 8, 10]

// 使用filter方法筛选数组中的元素
let evens = numbers.filter(function(num) {
    return num % 2 === 0;
});
console.log(evens); // 输出 [2, 4]

// 使用reduce方法将数组元素累加
let sum = numbers.reduce(function(accumulator, currentValue) {
    return accumulator + currentValue;
}, 0);
console.log(sum); // 输出 15

8. 连接和拼接数组

可以使用concat方法连接两个或多个数组,或使用join方法将数组元素拼接成字符串:

let array1 = [1, 2, 3];
let array2 = [4, 5, 6];

let combinedArray = array1.concat(array2);
console.log(combinedArray); // 输出 [1, 2, 3, 4, 5, 6]
console.log(array1); // 输出 [1, 2, 3],原数组未改变

8.2 拼接数组元素为字符串
使用join方法可以将数组的所有元素连接到一个字符串中。元素通过指定的分隔符进行分隔。

let array = ['apple', 'banana', 'cherry'];

let joinedString = array.join(', '); // 使用逗号和空格作为分隔符
console.log(joinedString); // 输出 'apple, banana, cherry'

如果不传递任何参数给join方法,它会使用逗号,作为默认的分隔符。

let array = ['apple', 'banana', 'cherry'];

let joinedString = array.join(); // 使用默认分隔符逗号
console.log(joinedString); // 输出 'apple,banana,cherry'

续补

8.1 使用扩展运算符连接数组
扩展运算符可以用于将数组的元素展开并拼接成新的数组。

let array1 = [1, 2, 3];
let array2 = [4, 5, 6];

let concatenatedArray = [...array1, ...array2];
console.log(concatenatedArray); // 输出 [1, 2, 3, 4, 5, 6]

8.2 使用Array.prototype.push.apply连接数组
虽然这不是最常用的方法,但在一些旧版的JavaScript代码中,你可能会看到使用Array.prototype.push.apply来连接数组。

let array1 = [1, 2, 3];
let array2 = [4, 5, 6];

Array.prototype.push.apply(array1, array2);
console.log(array1); // 输出 [1, 2, 3, 4, 5, 6],注意原数组array1被改变了

这种方法通过调用push方法的apply形式,将array2的元素逐个添加到array1中。但这种方法会修改array1,而不是创建一个新的数组。

使用for…of遍历其他可迭代对象

除了数组,for…of循环还可以用于遍历其他可迭代对象,如字符串、Map、Set等。

8.3 遍历字符串
使用for…of遍历字符串时,每次迭代都会得到字符串中的一个字符。

const str = 'hello';
for (const char of str) {
  console.log(char); // 输出每个字符:'h', 'e', 'l', 'l', 'o'
}

8.4 遍历Map对象
Map对象保存键值对,使用for…of遍历Map时,每次迭代都会得到一个包含键和值的数组。

const map = new Map();
map.set('one', 1);
map.set('two', 2);
map.set('three', 3);

for (const [key, value] of map) {
  console.log(key, value); // 输出:'one' 1, 'two' 2, 'three' 3
}

8.5 遍历Set对象
Set对象保存唯一值的集合,使用for…of遍历Set时,每次迭代都会得到一个集合中的元素。

const set = new Set([1, 2, 3, 2]);
for (const value of set) {
  console.log(value); // 输出:1, 2, 3 (注意:重复的2只输出一次,因为Set中的值是唯一的)
}
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值