function whatTheHeck(obj){
var arr = []
for(o in obj){
arr.concat(["what"])
}
return arr
}
whatTheHeck({"one":1, "two": 2})
Concat関数は完全に何もしません。しかし、Firebugのその行にブレークポイントを設定し、その行をウォッチとして実行すると、正常に機能します。そして、forループは2回繰り返されますが、最終的にarrは[]に等しくなります。
_Array.concat
_は新しい配列を作成します-元の配列を変更しないため、現在のコードは実際には何もしていません。 arr
は変更されません。
したがって、実際に機能することを確認するには、関数をこれに変更する必要があります。
_function whatTheHeck(obj){
var arr = [];
for(o in obj){
arr = arr.concat(["what"]);
}
return arr;
}
whatTheHeck({"one":1, "two": 2});
_
配列の最後に1つの項目を追加するだけの場合は、.Push()
の方がはるかに優れた方法です。
_function whatTheHeck(obj){
var arr = [];
for(o in obj){
arr.Push("what");
}
return arr;
}
whatTheHeck({"one":1, "two": 2});
_
これは、Javascript配列メソッドについて少し混乱していることの1つです。元の配列を変更するものもあれば、変更しないものもあり、どちらが変更し、どれが変更しないかを知るための命名規則はありません。あなたはただ読んで、どの方法でどの作品を学ぶ必要があります。