Выдвинуть список чисел в массив? - PullRequest
0 голосов
/ 31 января 2012

У меня есть массив

 var topics = [];

У меня есть список чисел 1-10

var obj = {one:1, two:2, three:3, four:4, five:5, six:6, seven:7, eight:8, nine:9, ten:10};

Я просто хочу вставить число в массив, но не знаю, что вызыватьэто в функции push?:

$.each(obj, function(i, val) { 
    topics.push({
        count: val
    });
    console.log(val);
});

Ответы [ 3 ]

1 голос
/ 31 января 2012

Если вы хотите, чтобы конечный массив выглядел следующим образом:

[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

Тогда в вашей существующей функции вам просто нужно сказать:

topics.push(val);

Если ваше намерение предназначено дляпоследний массив должен выглядеть следующим образом:

[ "one", "two", "three", "four" /* etc */ ]

Затем в существующей функции вам просто нужно сказать:

topics.push(i);

Если вы хотите, чтобы последний массив выглядел так:

[ { one : 1 }, { two : 2 }, { three : 3 } /* and so forth */ ]

Тогда вы бы сделали это так:

$.each(obj, function(i, val) {
   var item = {};
   item[i] = val;
   topics.push(item);
   console.log(val);
});

Нельзя просто сказать:

topics.push( { i : val } );

Поскольку синтаксис литералов объекта JS неразрешить использование переменных для имен свойств (ключей), хотя это разрешает переменные для значений свойств, поэтому { i : val } создает объект с одним свойством, называемым "i".

В вашем коде, если countпеременная, которую вы использовали бы, как я показал выше, то есть:

item[count] = val;

Если "count" - это фактическая строка, для которой вы хотите, чтобы свойство вызывалось, тогда ваш код будет работать как есть.

1 голос
/ 31 января 2012
var topics = []
var obj = {one:1, two:2, three:3, four:4, five:5, six:6, seven:7, eight:8, nine:9, ten:10};

Javascript way,

for(var i in obj){
topics.push(obj[i])
}

jQuery way,

$.each(obj,function(k,v){
topics.push(v)
})
0 голосов
/ 31 января 2012
 $.each(obj, function(i, val) { 

    topics.push(val); 

 });


   console.log(topics);
...