提问人:DNB5brims 提问时间:7/12/2023 最后编辑:Peter MortensenDNB5brims 更新时间:7/12/2023 访问量:85
在一行和两行中使用 JavaScript 数组 splice() 得到不同的结果
Using JavaScript array splice() in one line and two lines got different result
问:
代码 1:
let targetArr = ["hello", "world", "my", "name"];
let errnewArr = Array.from(targetArr).splice(2, 1);
console.log("errnewArr array : " + errnewArr.length);
代码 2:
targetArr = ["hello", "world", "my", "name"];
let newArr = Array.from(targetArr);
newArr.splice(2, 1);
console.log("new array : " + newArr.length);
如您所见,这两个代码示例具有相似的逻辑。只是拼接方法放在 或 之后,但结果却大不相同。得到的长度:1,但得到的长度:3。Array.from
newArr
errnewArr
new array
为什么结果会是这样的?
答:
评论
.splice
返回原始数组的已删除部分 - 因此顶部代码输出一个已删除部分的长度,底部代码记录删除该部分的数组长度......如果您记录数组而不是长度,您将确切地看到发生了什么