我正在创建对象的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/

10-13 07:25