【问题标题】:Altering an array of objects更改对象数组
【发布时间】:2018-12-11 05:36:15
【问题描述】:

我有一个这样的对象数组...

[
{ id:1, t1_id: 345, t1_val: "small", t2_id: 456, t2_val: "med", t3_id: 146, t3_val: "lrg"  },
{ id:2, t1_id: 983, t1_val: "small", t2_id: 657, t2_val: "med", t3_id: 548, t3_val: "lrg"  },
{ id:3, t1_id: 479, t1_val: "small", t2_id: 256, t2_val: "med", t3_id: 326, t3_val: "lrg"  }
]

我希望将此数组更改为类似的内容...

[
{ id:1, t1_id: 345, t1_val: "small"},
{ id:1, t2_id: 345, t2_val: "med" },
{ id:1, t3_id: 146, t3_val: "lrg"  },


{ id:2, t1_id: 983, t1_val: "small" },
{ id:2, t2_id: 657, t2_val: "med",},
{ id:2, t3_id: 548, t3_val: "lrg"  },

{ id:3, t1_id: 479, t1_val: "small"  },
{ id:3, t2_id: 256, t2_val: "med", },
{ id:3, t3_id: 326, t3_val: "lrg"  }
]

实现这一目标的最有效方法是什么?我看过this solution,但不确定如何在我的情况下实现它?首选 ES6 解决方案。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

function filterData(arr) {

  var rs = []
  arr.forEach(function(e) {

    rs.push({
      'id': e['id'],
      't1_id': e['t1_id'],
      't1_val': e['t1_val']
    });

    rs.push({
      'id': e['id'],
      't2_id': e['t2_id'],
      't2_val': e['t2_val']
    });

    rs.push({
      'id': e['id'],
      't3_id': e['t3_id'],
      't3_val': e['t3_val']
    });
  })

  return rs;
}

var x = [{
    id: 1,
    t1_id: 345,
    t1_val: "small",
    t2_id: 456,
    t2_val: "med",
    t3_id: 146,
    t3_val: "lrg"
  },
  {
    id: 2,
    t1_id: 983,
    t1_val: "small",
    t2_id: 657,
    t2_val: "med",
    t3_id: 548,
    t3_val: "lrg"
  },
  {
    id: 3,
    t1_id: 479,
    t1_val: "small",
    t2_id: 256,
    t2_val: "med",
    t3_id: 326,
    t3_val: "lrg"
  }
];

console.log(filterData(x))

【讨论】:

  • @Slyper 您应该阅读您的问题的第一条评论,它向您展示了stackoverflow 社区期望用户提出问题的标准。
  • @Slyper 你不能指望任何人支持它,因为它没有显示任何代码或没有提供任何我们可以帮助你的东西......它只是给你写一段代码,因为你不不知道该怎么做。您没有提供所需的最少信息,例如您使用的 javascript 版本。
  • 我做了@azad,我尝试从另一篇文章中实施解决方案,但没有奏效。这不是我第一次在 Stackoverflow 上发帖了……我之前已经发布了数百个问题。这是你被卡住的时刻之一......但最终谁在乎......!
  • @Slyper 至少您可以发布您尝试解决问题的方式
猜你喜欢
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多