Javascript 我可以在长度仅为4的数组的索引6中插入一个值吗?

Javascript 我可以在长度仅为4的数组的索引6中插入一个值吗?,javascript,underscore.js,lodash,Javascript,Underscore.js,Lodash,可能吗?假设有一个数组[3,4],我想在索引3处插入5以获得[3,4,null,5],是否有一个实用程序来实现这一点?是的。它被称为“稀疏”数组 您可以在任意索引处插入任意值。如果跳过索引,它们将被视为稀疏数组中的孔,因此在访问它们时将得到未定义的。如果您不想要孔,并且实际上想要null,那么只需使用循环来填充值,直到达到所需的索引。Undefined也是令人满意的。数组实际上没有值Undefined。它只是给你当一个属性不存在时得到的默认值。当您使用迭代器方法(如.forEach()和其他跳过

可能吗?假设有一个数组
[3,4]
,我想在索引3处插入5以获得
[3,4,null,5]
,是否有一个实用程序来实现这一点?

是的。它被称为“稀疏”数组


您可以在任意索引处插入任意值。如果跳过索引,它们将被视为稀疏数组中的孔,因此在访问它们时将得到
未定义的
。如果您不想要孔,并且实际上想要
null
,那么只需使用循环来填充值,直到达到所需的索引。Undefined也是令人满意的。数组实际上没有值
Undefined
。它只是给你当一个属性不存在时得到的默认值。当您使用迭代器方法(如
.forEach()
和其他跳过数组中的孔的方法)时,这可能会产生影响。所以这取决于你是否真的对洞满意。嗯-我想我应该可以,只要它能确定预期的索引,并且不会把索引4中插入的元素误认为索引2。为什么不试试看呢<代码>变量a=[3,4];a[3]=5;控制台日志(a)。这不会给出问题中描述的结果。啊,欺骗。当我对数组进行console.log时,我只得到
[5:1]
,但当我记录长度时,它给了我6,所以它似乎可以工作。@斜视:未定义的行为非常类似于null,并且可以以同样的方式用于任何有用的目的。@realization:根据浏览器的不同,数组的控制台日志将为您提供[5 x未定义,1]。这只是数组的一种简写表示形式,我将在上面展示。关键是,如果您在数组中迭代,它将表示索引0到4的未定义,以及索引5的1。
var ary = [];

ary[5] = 1;

console.log(ary.length); // 6
console.log(ary); // [undefined,undefined,undefined,undefined,undefined,1]