JavaScript 数组长度

摘要:在本教程中,您将了解 JavaScript 数组的 length 属性以及如何正确处理它。

JavaScript 数组长度属性到底是什么

根据定义,数组length 属性是一个无符号的 32 位整数,它始终大于数组中最高索引的数值

长度的值为 232。这意味着数组最多可以容纳 4294967296 (232) 个元素。

length 属性的行为因数组类型(包括密集型和稀疏型)而异。

1) 密集型数组

密集型数组是指其元素从零开始具有连续索引的数组。

对于密集型数组,您可以使用 length 属性获取数组中元素的数量。例如

let colors = ['red', 'green', 'blue'];
console.log(colors.length); // 3Code language: JavaScript (javascript)

在本例中,length 属性返回 3,与 colors 数组中元素的数量相同。

以下操作将向 colors 数组添加一个元素

colors.push('yellow');
console.log(colors.length); // 4Code language: JavaScript (javascript)

现在,colors 数组的 length 属性为 4。

当您清空 colors 数组时,它的长度为 0

colors = [];
console.log(colors.length); // 0Code language: JavaScript (javascript)

2) 稀疏型数组

稀疏型数组是指其元素从零开始不具有连续索引的数组。

例如,[10,, 20, 30] 是一个稀疏型数组,因为其元素的索引为 0、2 和 3。

在稀疏型数组中,length 属性不表示实际元素的数量。它是一个大于最高索引的数字。例如

let numbers = [10, , 20, 30];
console.log(numbers.length); // 4Code language: JavaScript (javascript)

在本例中,numbers 数组中的元素数量为 3:10、20 和 30。最高索引为 3。因此,length 属性返回 4。

以下操作将在索引 10 处向 numbers 数组添加一个元素

numbers[10] = 100;
console.log(numbers.length); // 11Code language: JavaScript (javascript)

在本例中,length 属性返回 11。

修改 JavaScript 数组 length 属性

JavaScript 允许您更改数组 length 属性的值。通过更改长度的值,您可以从数组中删除元素或使数组变为稀疏型。

1) 清空数组

如果您将长度设置为 0,则数组将为空

const fruits = ['Apple', 'Orange', 'Strawberry'];
fruits.length = 0;

console.log(fruits); // []Code language: JavaScript (javascript)

2) 删除元素

如果您将数组的 length 属性设置为小于最高索引的值,则索引大于或等于新长度的所有元素都将被删除。

以下示例将 fruits 数组的 length 属性更改为 2,这将从数组中删除第三个元素

const fruits = ['Apple', 'Orange', 'Strawberry'];
fruits.length = 2;

console.log(fruits); // [ 'Apple', 'Orange' ]Code language: JavaScript (javascript)

3) 使数组变为稀疏型

如果您将数组的 length 属性设置为大于最高索引的值,则数组将变为稀疏型。例如

const fruits = ['Apple', 'Orange', 'Strawberry'];
fruits.length = 5;

console.log(fruits); // [ 'Apple', 'Orange', 'Strawberry', <2 empty items> ]Code language: JavaScript (javascript)

摘要

  • 数组的 length 属性是一个无符号的 32 位整数,它始终大于数组中最高索引的数值。
  • length 返回密集型数组中元素的数量。
  • 对于稀疏型数组,length 不反映数组中实际元素的数量。
  • 修改 length 属性可以从数组中删除元素或使数组变为稀疏型。
本教程是否有用?