Javascript的Array是个Object 所以可以通过两个办法来创建Array
//非常正式的写法,创建一个Array对象cosnt number = new Array(1,2,3,4,5);//但众所周知,Javascript是编程语言中的老头乐,所以你当然可以写的很简单直接用[]const number = ["apple","blueberry","orange"];
//当然你也可以创建新空的数组const arr1 = [];
// 创建一个长度为 5 的数组(注意:元素是 empty slots,不是 undefined)const arr2 = new Array(5);尽管根据索引找到empty slot对应的内容为undefined,但内部其实是empty slot。这是因为根据索引访问元素这个放的如果访问一个不存在的属性(包括数组索引其实就是对象属性),返回的就是 undefined。
更多关于empty slot的知识我放在了[[Empty Slot]]这里便不再赘述了
const array = new Array(5);console.log(array[0]);//undefinedconsole.log(array);//[ <5 empty items> ]
const array = const array = [1,,3];console.log(array);//[ 1, <1 empty item>, 3 ]Javascript的Array更像Python的list而非array. 它是动态数组可以随便放不同类型的元素,甚至还能放函数、对象。 比如它可以这样
const arr = [1, "hello", 3.14, { name: "Tom" }];const fruits = ["apple", "banana", "orange"];
// 通过索引访问console.log(fruits[0]); // "apple"
// 修改fruits[1] = "blueberry"; // ["apple", "blueberry", "orange"]
// 数组长度console.log(fruits.length); // 3const arr = [1, 2, 3];
// 末尾添加arr.push(4); // [1,2,3,4]
// 末尾删除arr.pop(); // [1,2,3]
// 开头添加arr.unshift(0); // [0,1,2,3]
// 开头删除arr.shift(); // [1,2,3]
// 指定位置增删改arr.splice(1, 1, 99); // [1,99,3] (从索引1删掉1个元素,再插入99)const arr = [10, 20, 30];
// forEach:逐个访问arr.forEach((v) => console.log(v));
// map:返回新数组const doubled = arr.map((v) => v * 2); // [20,40,60]
// filter:过滤const filtered = arr.filter((v) => v > 15); // [20,30]
// reduce:累加器const sum = arr.reduce((acc, v) => acc + v, 0); // 60const arr = ["a", "b", "c", "b"];
// indexOf:找到索引(找不到返回 -1)arr.indexOf("b"); // 1
// lastIndexOf:从后往前找arr.lastIndexOf("b"); // 3
// includes:是否包含arr.includes("c"); // true
// find / findIndex:更灵活条件查找arr.find((el) => el === "b"); // "b"arr.findIndex((el) => el === "b"); // 1const arr = [1, 2, 3];
// join:转字符串arr.join("-"); // "1-2-3"
// concat:合并数组[1, 2].concat([3, 4]); // [1,2,3,4]
// slice:截取(不修改原数组)arr.slice(1, 3); // [2,3]
// flat:拍平多维数组[1, [2, [3]]].flat(2); // [1,2,3]const arr = [1, , 3]; // 长度是 3,但索引 1 是 empty slottypeof [] === "object"const arr = [1, 2, 3, 4];arr.length = 2; // [1,2]const [a, b] = [10, 20]; // a=10, b=20const arr1 = [1, 2];const arr2 = [...arr1, 3, 4]; // [1,2,3,4]const users = [ { name: "Tom", age: 18 }, { name: "Jerry", age: 20 },];
const names = users.map((u) => u.name); // ["Tom","Jerry"]