- 长度特性:
- 该稀疏数组
sparseArr
的长度为 11
。因为虽然只在索引 10
处赋值,但JavaScript数组长度是由最大索引值加1决定的。
- 操作与长度变化:
- 遍历:在遍历稀疏数组时,使用普通的
for
循环遍历 sparseArr.length
,会遍历到从 0
到 10
的位置,即使中间位置没有实际值。而使用 for...in
循环只会遍历有值的位置(即索引 10
)。
- 增加元素:
- 在已有最大索引之后增加元素:如果在索引
10
之后增加元素,比如 sparseArr[11] = 'newValue';
,数组长度会增加为 12
。
- 在已有索引范围内增加元素:如果在已有索引范围内增加元素,比如
sparseArr[5] = 'anotherValue';
,数组长度不会改变,仍然是 11
。
- 代码验证:
let sparseArr = [];
sparseArr[10] = 'value';
// 验证长度
console.log(`初始数组长度: ${sparseArr.length}`);
// 遍历
console.log('普通for循环遍历:');
for (let i = 0; i < sparseArr.length; i++) {
console.log(`索引 ${i}: ${sparseArr[i]}`);
}
console.log('for...in循环遍历:');
for (let key in sparseArr) {
console.log(`索引 ${key}: ${sparseArr[key]}`);
}
// 在已有最大索引之后增加元素
sparseArr[11] = 'newValue';
console.log(`在索引11增加元素后数组长度: ${sparseArr.length}`);
// 在已有索引范围内增加元素
sparseArr[5] = 'anotherValue';
console.log(`在索引5增加元素后数组长度: ${sparseArr.length}`);