gpt4 book ai didi

javascript,这个函数怎么可能返回一个空数组?

转载 作者:行者123 更新时间:2023-12-02 09:02:52 27 4
gpt4 key购买 nike

function whatTheHeck(obj){
var arr = []

for(o in obj){
arr.concat(["what"])
}

return arr
}

whatTheHeck({"one":1, "two": 2})

concat 函数完全无法执行任何操作。但是如果我在 Firebug 中的该行上放置一个断点并将该行作为 watch 运行,它就可以正常工作。 for循环迭代了两次,但最终arr仍然等于[]。

最佳答案

Array.concat 创建一个新数组 - 它不会修改原始数组,因此您当前的代码实际上什么也没做。它不会修改arr

因此,您需要将函数更改为此才能看到它实际工作:

function whatTheHeck(obj){
var arr = [];

for(o in obj){
arr = arr.concat(["what"]);
}

return arr;
}

whatTheHeck({"one":1, "two": 2});

如果您尝试仅将单个项目添加到数组末尾,.push() 是更好的方法:

function whatTheHeck(obj){
var arr = [];

for(o in obj){
arr.push("what");
}

return arr;
}

whatTheHeck({"one":1, "two": 2});

这是我发现 Javascript 数组方法有点令人困惑的事情之一。有些修改原始数组,有些则不修改,并且没有命名约定来知道哪些修改,哪些不修改。您只需阅读并了解哪种方式有效即可。

关于javascript,这个函数怎么可能返回一个空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7962953/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com