将空元素推入 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 许可协议

阅读 332
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题