繁体   English   中英

Javascript中Array()和[]的差异拼接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM