2015-08-27 3 views
0

Я пытаюсь получить цикл foreach во втором. Мой код:SOLVED - JS: инкапсулированный цикл foreach с массивами для JSON

var results = data.d.results; 
var boxes= [ 
    "Nmb1", 
    "Nmb2", 
    "Nmb3", 
    "Nmb4", 
    "Nmb5", 
    ]; 

boxes.forEach(function(n){ 

    var boxesEach = results[0].n.results;      

    boxesEach.forEach(function(i){ 
    $("input[value="+'"'+i+'"'+"]").attr('checked', true); 
    }); 
}); 

То, что я пытаюсь сделать, это сделать, например, «Nmb1» заменить «N», который сделает следующий «выходной код»:

var boxesEach = results[0].Nmb1.results; 

Он работает если бы я просто поместил код так, но не с циклом.

Спасибо за помощь и советы.

BTW: Я получаю JSON через AJAX с сервера Sharepoint 2013 (с API REST).

+0

вы можете добавить демо? – Mritunjay

+0

Кстати, вы можете использовать 'results [0] [n] .results' вместо' results [0] .n.results; '. – Mritunjay

+0

Извините, нет демо, потому что это важные данные. Это решение решило его, спасибо. – sandrooco

ответ

4

Вам нужно использовать его как индекс. Это называется скобка обозначение (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors#Bracket_notation)

var boxesEach = results[0][n].results; 

Тот вы сейчас пытаешься использовать обозначение Dot, для которого вам нужно имя фактического свойства (т.е. Nmb1), а не переменные, которая имеет свойство имя.

+0

Uncaught SyntaxError: Неожиданный идентификатор Любые идеи? – sandrooco

+0

У вас есть все свойства в результатах [0] i.e. Nmb1 .... Nmb5? – potatopeelings

+0

Извините! Виноват. Я просто понял, что мне не хватает. – potatopeelings

Смежные вопросы