[英]Difference splicing between Array() and [] in Javascript
我正在尝试在 Javascript 中的索引功能处复制 Python 的插入。
var index = [0,1,2,3,4]
var nums = [0,1,2,2,1]
const target = new Array(nums.length);
for (let i=0; i<index.length; i++) {
target.splice(nums[i], 0, index[i]);
};
console.log(target);
这将产生以下 output:
[ 0, 4, 1, 3, 2, <5 个空项> ]
但是,如果我运行以下代码:
var index = [0,1,2,3,4]
var nums = [0,1,2,2,1]
const target = [] //new Array(nums.length);
for (let i=0; i<index.length; i++) {
target.splice(nums[i], 0, index[i]);
};
console.log(target);
这将产生以下 output:
[0、4、1、3、2]
到底是怎么回事? 第二个 output 是我想要的。
new Array(nums.length)
将用该数字的“空槽”填充数组。
const target = []
将是 [ ]
const target = new Array(5)
将是 [, , , , ]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Array更多信息在这里。
当你像这样初始化数组时:
const target = new Array(index.length);
此代码将启动带有五个空框的“目标”数组。 结果它包含垃圾值,插入后可能会影响您的值。
但是当你像这样初始化时:
const target = [];
此代码将启动“目标”数组而不定义它的大小。
这意味着您可以在其中插入 n 个动态值。
('n' 表示数组的大小)
所以总是使用第二个选项,这是使用 javascript 数组的好习惯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.