原文地址:https://dev.to/bhagatparwinder/arrays-in-javascript-5fc7
什么是数组?
JavaScript 中的数组是一种用于存储多个元素或顺序重要的一种数据结构。记住数组的 typeof 返回的是对象。
数组中的每个元素都有下标,下标就是元素在数组中的位置。数组的下标是从0开始的,第一个元素的下标是 0 ,第二个的下标是 1 以此类推。元素的总个数就是数组的长度。
如何创建一个数组?
// Using the square bracket notation
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
// Using new keyword
const bikeArray = new Array("Honda", "Ducati", "Yamaha");
⚠️警告:不推荐使用 new 关键字来创建数组,下面会介绍到。
如何判断一个变量是否为数组?
因为 typeof 数组返回的是对象,当你执行以下操作时:
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
console.log(typeof(carArray)); // output will be object!
你应该按照下面的做:
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
console.log(Array.isArray(carArray)); // true
我们同样可以这样:
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
carArray instanceof Array; // true
如何获取数组中的元素?
答案是:下标。
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
console.log(carArray[2]); // Ferrari
记住 Ferrari 即使在数组中是第三个元素,由于下标是从 0 开始所以它的下标是 2。
更改数组中的元素
修改元素就像你从数组中获取元素一样,都可以通过下标:
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
carArray[2] = "Mazda";
console.log(carArray); // [ 'Honda', 'BMW', 'Mazda', 27, true ]
数组的长度
使用 length 属性获得:
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
console.log(carArray.length); // 5
若要获取最后一个元素,你可以这样:
const carArray = ["Honda", "BMW", "Ferrari", 27];
console.log(carArray[carArray.length - 1]); // 27
数组中的常用方法
下篇文章我会介绍许多数组的方法,但现在我只介绍另个常用方法:
- Push: 向数组末尾添加元素
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
carArray.push("Mazda");
console.log(carArray); // [ 'Honda', 'BMW', 'Ferrari', 27, true, 'Mazda' ]
- Sort: 为数组排序,且会改变原数组
const carArray = ["Honda", "BMW", "Ferrari", 27, true];
carArray.sort();
console.log(x); // [ 27, 'BMW', 'Ferrari', 'Honda', true ]
为何不推荐使用 new 来创建数组?
中括号和 new 关键字在创建空数组或依照传入的数据来创建数组是一样的。
但 new 关键字有时候会表现和预期有差异:
let score = new Array(5, 10);
console.log(score); // [ 5, 10 ]
score = new Array(5);
console.log(score); // [ , , , , ]
第一个创建了一个包含 5 和 10 的数组,但第二个却生成了 5 个包含 undefined 的数组而不是包含5的数组。