全面总结JavaScript对数组对象的各种操作
JavaScript中的数组是一种非常有用的数据结构,可以存储并操作多个值。在本文中,我们将深入探讨JavaScript中的数组对象及其各种方法和操作。
创建一个数组
使用方括号定义一个数组,可以像下面这样初始化数组:
const myArray = [1, 2, 3];
除了字面量方式之外,还可以使用new Array()
来创建一个数组,例如:
const myArray = new Array(1, 2, 3);
还可以使用new Array(length)
来创建一个指定长度的数组。如果只指定一个参数,则该数组将包含指定数量的空元素。
const myArray = new Array(3); // creates an array with 3 empty elements
访问和修改数组元素
可以使用索引值来访问和修改数组元素。数组索引从0开始,因此第一个元素的索引为0。
const myArray = [1, 2, 3]; console.log(myArray[0]); // output: 1 myArray[1] = 4; console.log(myArray); // output: [1, 4, 3]
数组常用方法
length
length
属性返回数组的长度。它不会忽略空元素。
const myArray = [1, 2, 3]; console.log(myArray.length); // output: 3 const emptyArray = new Array(3); console.log(emptyArray.length); // output: 3
push, pop, shift, unshift
这四个方法用于在数组的开头或结尾添加或删除元素。
const myArray = [1, 2, 3]; myArray.push(4); console.log(myArray); // output: [1, 2, 3, 4] myArray.pop(); console.log(myArray); // output: [1, 2, 3] myArray.unshift(0); console.log(myArray); // output: [0, 1, 2, 3] myArray.shift(); console.log(myArray); // output: [1, 2, 3]
concat
concat()
方法用于将两个或多个数组合并为一个新数组,不会改变原始数组。
const array1 = [1, 2, 3]; const array2 = [4, 5, 6]; const newArray = array1.concat(array2); console.log(newArray); // output: [1, 2, 3, 4, 5, 6]
slice
slice()
方法返回一个从指定索引开始到结束索引之间的新数组。它不会改变原始数组。
const myArray = [1, 2, 3, 4, 5]; const newArray = myArray.slice(1, 4); console.log(newArray); // output: [2, 3, 4]
splice
splice()
方法用于添加或删除数组中的元素。它会改变原始数组,并返回已删除的元素。
const myArray = [1, 2, 3]; myArray.splice(1, 1); // removes 2 from the array console.log(myArray); // output: [1, 3] myArray.splice(1, 0, 2); // inserts 2 at index 1 console.log(myArray); // output: [1, 2, 3]
forEach
forEach()
方法用于对数组中的每个元素执行一次给定的函数。它不会改变原始数组。
const myArray = [1, 2, 3]; myArray.forEach((element) => { console.log(element); }); // output: // 1 // 2 // 3
map
map()
方法用于创建一个新数组,其中每个元素都是原始数组中元素调用函数处理后的值。
const myArray = [1, 2, 3]; const newArray = myArray.map((element) => { return element * 2; }); > 来源:[JavaScript中文网](https://www.javascriptcn.com/post/869) ,转载请注明来源 本文地址:[https://www.javascriptcn.com/post/869](https://www.javascriptcn.com/post/869)