javascript - 对象数组在 key 中存储相同的属性

标签 javascript jquery

我正在创建一个 javascript 对象数组。在对象内部,我想要一个键,并且在同一个存储桶中包含与该键关联的所有属性。

例如食物[{水果: '苹果', '香蕉'}, {香料: '辣椒', '卡津'}]

如果键是唯一的,则添加到数组中,否则就放在同一个存储桶中。

下面的代码

$('.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 - 对象数组在 key 中存储相同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35191205/

相关文章:

javascript - 你如何在 NodeJS 模块中共享常量?

javascript - 使用 Javascript 合并 2 组对象 + 数组

JavaScript 延迟

javascript - jquery更新嵌套对象的键

jquery - 只有 x 轴上的整数在带有 angularjs 的流程图中刻度

javascript - 单击链接时获取 TD 字段的值

javascript - 未正确检索重音字符

javascript - 使用 Javascript 插入 HTML

jquery - MVC3 上的 GitHub 树 slider 实现

javascript - 使用 javascript 进行多重下载