我正在创建一个javascript对象数组。在对象内部,我想要一个键,该键具有与该键在同一个桶中相关联的所有属性。
例如食物[{fruits:' apples',' bananas'},{spices:' chili',' cajun'} ]
如果密钥是唯一的,则添加到阵列,否则只需放在同一个桶中。
以下代码
$('.options li').each(function() {
$name = $(this).parent().attr('id');
$attr = $(this).attr('data-attr');
food[$name] = $attr;
});
以下是我的代码明智https://jsfiddle.net/fqyt18y7/
答案 0 :(得分:3)
答案 1 :(得分:1)
Javascript对象可以包含键值对,但不能包含一个键和多个值,就像您指定的那样[{fruits:' apples',' bananas'},{spices:&# 39;辣椒',' cajun'}。
相反,您可以将值更改为可包含多个元素的数组
[{fruits: [&#39; apples&#39;,&#39; bananas&#39; ] },{spices: [< / strong>&#39;辣椒&#39;,&#39; cajun&#39; ] }]。
要实现这一目标,您需要更改
food[$name] = $attr;
与
if (!food[$name]) {
food[$name] = [$attr];
} else {
food[$name].push($attr);
}