在一行和两行中使用 JavaScript 数组 splice() 得到不同的结果

Using JavaScript array splice() in one line and two lines got different result

提问人:DNB5brims 提问时间:7/12/2023 最后编辑:Peter MortensenDNB5brims 更新时间:7/12/2023 访问量:85

问:

代码 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.fromnewArrerrnewArrnew array

为什么结果会是这样的?

JavaScript 数组 切片

评论

4赞 Jaromanda X 7/12/2023
.splice返回原始数组的已删除部分 - 因此顶部代码输出一个已删除部分的长度,底部代码记录删除该部分的数组长度......如果您记录数组而不是长度,您将确切地看到发生了什么
0赞 Peter Mortensen 7/12/2023
这怎么不是重复的?

答:

0赞 seiya 7/12/2023 #1

splice 返回已删除的元素并更改数组。

-1赞 xuerzong 7/12/2023 #2

一个是目标,另一个是回报

评论

0赞 moken 7/16/2023
答案需要支持信息 您的答案可以通过其他支持信息来改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。