【问题标题】:Iterating through an array of objects in jQuery and matching attributes遍历 jQuery 中的对象数组并匹配属性
【发布时间】:2017-08-22 05:50:12
【问题描述】:

我正在尝试使用 jQuery 使用我的循环值循环和分组这个对象数组。

我希望最终的对象看起来像这样。

[ {'organization':'ABC Inc','address':'123 Front','city':'Wilmington','state':'NC','zip':'09900'}, {'organization':'Wonton Inc','address':'555 Front','city':'Jasper','state':'NC','zip':'09877'}, {'organization':'ABC Inc','address':'123 Front','city':'Wilmington','state':'NC','zip':'45345'} ]

【问题讨论】:

  • 发布原始对象和用于控制台记录每个属性的循环脚本。也许对它们进行分组并没有太多遗漏。
  • 请不要发布代码图片......
  • 我的意思是简化,因为代码非常复杂。 @LouysPatriceBessette

标签: javascript jquery arrays json loops


【解决方案1】:

使用hash table#reduce() 函数提取所需的数据结构 - 请参见下面的演示:

var object = [{loop:0, key: 'organization', value:'ABC Inc'}, {loop:0,key:'address',value:'123 Front'}, {loop:0, key: 'city',value:'Wilmington'},{loop:0, key:'state',value:'NC'},{loop:0, key:'zip',value:'09900'}, {loop:1,key:'organization',value:'Wonton Inc'},{ loop:1, key:'address',value:'555 Front'}, {loop:1,key:'city',value:'Jasper'},{loop:1, key:'state',value:'NC'},{loop:1, key:'zip',value:'09877'}, {loop:1, key:'organization',value:'ABC Inc'},{loop:1, key:'address',value:'123 Front'},{loop:1, key:'city',value:'Wilmington'},{loop:1, key:'state',value:'NC'},{loop:1, key:'zip',value:'45345'}];

var result = object.reduce(function(hash){
  return function(p,c) {
    if(!hash[c.loop]) {
      hash[c.loop] = {}
      p.push(hash[c.loop]);
    }
    hash[c.loop][c.key] = c.value;
    return p;
  }
}(Object.create(null)), []);

console.log(result);
.as-console-wrapper{top:0;max-height:100%!important;}

【讨论】:

  • 我接受了你的回答。谢谢它完全按照我想要的方式工作
猜你喜欢
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
相关资源
最近更新 更多