Mos*_*oss 19 javascript arrays loops concat function
function whatTheHeck(obj){
var arr = []
for(o in obj){
arr.concat(["what"])
}
return arr
}
whatTheHeck({"one":1, "two": 2})
Run Code Online (Sandbox Code Playgroud)
concat函数完全没有做任何事情.但是如果我在Firebug中的那一行放置断点并将该线作为手表运行它可以正常工作.并且for循环迭代两次,但最后arr仍然等于[].
jfr*_*d00 46
Array.concat创建一个新数组 - 它不会修改原始数组,因此您当前的代码实际上什么都不做.它不会修改arr.
因此,您需要将功能更改为此功能,以确保其实际工作:
function whatTheHeck(obj){
var arr = [];
for(o in obj){
arr = arr.concat(["what"]);
}
return arr;
}
whatTheHeck({"one":1, "two": 2});
Run Code Online (Sandbox Code Playgroud)
如果您只想在阵列的末尾添加一个项目,那么这.push()是一个更好的方法:
function whatTheHeck(obj){
var arr = [];
for(o in obj){
arr.push("what");
}
return arr;
}
whatTheHeck({"one":1, "two": 2});
Run Code Online (Sandbox Code Playgroud)
这是我发现Javascript数组方法有点混乱的事情之一.有些修改了原始数组,有些则没有,并且没有命名约定来知道哪些做什么,哪些没有.您只需阅读并了解哪种工作方式.