我正在创建对象的javascript数组。在对象内部,我想要一个键以及与该键在同一存储桶中关联的所有属性。
例如食物[{水果:'苹果','香蕉'},{香料:'辣椒','cajun'}]
如果密钥是唯一的,则将其添加到数组中,否则将其放置在同一存储桶中。
下面的代码
$('.options li').each(function() {
$name = $(this).parent().attr('id');
$attr = $(this).attr('data-attr');
food[$name] = $attr;
});
这是我的代码明智的https://jsfiddle.net/fqyt18y7/
最佳答案
Working Fiddle
为此,您需要将每个关键字及其元素数组存储在一起。这样的事情应该可以解决问题:
$('.options li').each(function() {
$name = $(this).parent().attr('id');
$attr = $(this).attr('data-attr');
// Check to see if this keyword has been used before
// because if not, we need to store an empty array there
if(typeof food[$name] === 'undefined'){
food[$name] = [];
}
// Add our element to that array
food[$name].push($attr);
});
关于javascript - 对象数组在键中存储相同的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35191205/