Ответ 1
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. Некоторые модифицируют исходный массив, некоторые - нет, и нет соглашения об именах, чтобы знать, что делать, а какие нет. Вам просто нужно прочитать и узнать, какая именно работа.