将空元素推入 javascript 数组

新手上路,请多包涵

如何将空元素推送到现有的 Js 数组,让我们假设:

 var arr = [54,77,21];
var target = [54,77,21,,,,36];
arr.push(); //do not append an empty element into the array.
arr.push();

console.log(JSON.stringify(arr)); //output: [54,77,21]

如何附加空元素以便“arr”等同于“target”数组?

原文由 Voice Of The Rain 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 331
2 个回答

您可以直接处理索引。这构建了一个稀疏数组。

 var arr = [54,77,21];

arr[6] = 36;
console.log(JSON.stringify(arr));

或者推送 undefined 直到你喜欢推送该值。这将返回一个填充数组。

 var arr = [54,77,21];

arr.push(undefined);
arr.push(undefined);
arr.push(undefined);
arr.push(36);
console.log(JSON.stringify(arr));

By using JSON.stringify , you get for undefined or sparse items null , because JSON knows only null instead of undefined .

原文由 Nina Scholz 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 Array#length

 arr.length++;

您可以随时设置长度属性来截断数组。 当您通过更改数组的长度属性来扩展数组时,实际元素的数量会增加;例如,如果将长度当前为 2 时设置为 3,则数组现在包含 3 个元素,这会导致第三个元素成为不可迭代的空槽。

但请注意,JSON 不支持稀疏数组。也就是说,您看不到带有 JSON.stringify 的空插槽。

 var arr = [54,77,21];
arr.length++;
arr.length++;
arr.length++;
arr.push(36);
console.log(arr);

(仅供参考:Stack Snippets 似乎无法正确支持稀疏数组。您需要改为在浏览器控制台中运行该代码。)

原文由 str 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题