2013-11-13 3 views
-2

Я пытаюсь присвоить значение объекту через циклы.Как назначить массив в объект?

У меня есть что-то вроде

var data = {'item1' : 'aa', 'item2' : 'bb', 'item3' : 'cc' ..more}; 
var elements: [ 
       { 
       type : 'html', 
       html : 'adding html' 
       }, 
       { 
       type:'select', 
       id:'select box', 
       //I want to add all my data array below but not sure how to do it. 
       items: [[data['item1'],0],[data['item2'],0]] 
       } 
       ] 

Я не знаю, как применить петлю внутри объекта элемента. Может ли кто-нибудь мне помочь? Благодаря!

+0

'data' выглядит, как вы начали писать яваскрипт и закончилась с помощью PHP. Что это должно быть? У JS нет таких ассоциативных массивов. На самом деле ... ни один из ваших кодов не имеет никакого смысла. – m59

+0

Если это JS, тогда 'data' должен быть определен следующим образом:' var data = {'item1': 'aa', 'item2': 'bb', 'item3': 'cc' ..more}; ' – regulus

+0

Что мешает вам делать «предметы: данные»? Тогда у вас есть доступ к 'data', и вы можете манипулировать им позже. –

ответ

1

Вы могли бы использовать это (требуется JavaScript 1.8.5):

var elements = [ 
    { 
     type : 'html', 
     html : 'adding html' 
    }, 
    { 
     type:'select', 
     id:'select box', 
     items: Object.keys(data).map(function(key) { return [ data[key], 0 ]; }) 
    } 
]; 
0

назначить из цикла

var items= new Array(); 
for (/* loop sttings depending on how you'll do it, and we suppose i as counter */){ 
    var obj: new Object(); 
    // set object feilds and values 
    items.push(obj); 
} 

и получить элементы:

for (i in elements){ 
    variable = items[i].feild; 
    // or var obj = items[i]; 
} 
+1

-1: Что это делает? –

0

Вы можете Не делайте этого, пока вы определяете объект elements. Просто определить items как массив, например: items : [] Тогда

var index = 0; 
for (var element in data) { 
    items[index++] = [data[element], 0]; 
} 
Смежные вопросы