MST

星途 面试题库

面试题:JavaScript 中稀疏数组的特性及创建方式

请简述 JavaScript 稀疏数组的特性,并说明如何创建一个稀疏数组。另外,列举一个在实际应用场景中可能会用到稀疏数组的场景。
18.5万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

特性

  1. 存在空洞:稀疏数组是包含从0开始的不连续索引的数组,其中某些位置没有值,形成空洞。与密集数组每个索引都有对应值不同。
  2. length属性:稀疏数组的length属性会反映数组中最高索引值加1,即使中间有空洞。例如,创建let arr = []; arr[100] = 42;arr.length为101,尽管0到99索引位置没有值。
  3. 迭代行为:在使用普通for循环迭代稀疏数组时,空洞位置会被跳过。而使用for...offorEach等方法时,空洞位置会以undefined的形式出现。

创建方式

  1. 直接初始化
let sparseArray = [];
sparseArray[10] = 'value';

这里数组从索引0到9都是空洞,索引10有值。 2. 使用Array.from方法

let sparseArray = Array.from({ length: 5 }, (_, i) => i === 2? 'value' : undefined);
// 数组长度为5,索引2位置有值'value',其他位置为undefined

实际应用场景

在游戏开发中,地图可以用稀疏数组表示。例如一个大型二维地图,大部分区域是空旷的(无对象),只有少数位置有游戏元素(如建筑物、角色等)。使用稀疏数组可以节省内存,只在有实际元素的位置存储数据,而不是为整个地图的每个位置都分配空间。