У меня есть следующий объект:
var business_challenges =[{title: 'Business Challenges'}, [{digital_trans: 'Digital Transformation'}, {agile_mobile:'Agile & Mobile Working always_on'}, {always_on:'Always on Infrastructure'}, {connect_protect: 'Connect & Protect'}, {cost_cutting:'Cost Cutting/Maximise Investment'}, {improving_cust: 'Improving Customer Engagement'} ]];
var business_divisions = [{title: 'Business Divisions'},[{SMB:'SMB'}, {DCS:'DCS'}, {DPS:'DPS'}]];
var filters = $.merge(business_divisions, business_challenges);
Я пытаюсь Переберите объект, чтобы получить пар ключ: значение, но я изо всех сил. Значение ключа является числовым, а не ассоциативным массивом, а значение - объектом. Я попробовал вложить еще $ каждый, но это не работает.
Может ли кто-нибудь помочь? Нужно ли мне изменять, как фильтры ?
var filter_html = '<ul>';
//var filtersJSON = $.parseJSON(filters);
$.each(filters, function(i, data) {
var filter_title = data.title; //THIS WORKS
filter_html = filter_html+filter_title;
$.each(data, function(key, val) {
filter_html = filter_html+'<li><input type="checkbox" value="'+ key +'">'+ val.key +'</li>'; //THIS DOESNT WORK
});
});
filter_html = filter_html+ '</ul>';
$('#filterControls').html(filter_html);
Эта структура данных очень странно. Вы контролируете его источник? – charlietfl
Да, я могу изменить его, если потребуется. Впервые Ive попытался собрать ассоциативный массив/объект в Javascript. Я больше привык к PHP, поэтому немного запутался! – LeeTee
Я думаю, вы должны использовать '$ .extend()' i.p.o. $ .merge(). – Franco