javascript - 如何使用 Angular 或 JavaScript 连接两个具有相同 id 的数组

标签 javascript angularjs

我对 Angular 或 JavaScript 有点陌生。我正在尝试将具有相同 id 的值附加或连接到一行中。

var array = [{
            id: "410",
            value: "val1"
        }, {
            id: "411",
            value: "val1"
        }, {
            id: "412",
            value: "val4"
        },{
            id: "410",
            value: "val2"];

            var output = [];

我希望输出是

output = [
{id:"410", value:["val1","val2"]},
{id:"411", value:["val1"]},
{"id":412,value:["val4"]}]

感谢任何帮助,提前致谢

最佳答案

您的value属性必须是一个数组。

您可以使用reduce函数来获得所需的输出。

var array = [{ id: "410", value: "val1" }, 
             { id: "411", value: "val1" }, 
             { id: "412", value: "val4" }, 
             { id: "410", value: "val2"}];

var output = array.reduce((a, c) => {
  var id = c.id;
  var e = a.filter((e) => e.id == id)[0];
  if (e) {
    e.value.push(c.value);
  } else {
    a = [...a, ...[{ id: id, value: [c.value] }]];
  }
  
  return a;
}, []);

console.log(output);

资源

关于javascript - 如何使用 Angular 或 JavaScript 连接两个具有相同 id 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48550082/

相关文章:

javascript - jquery onclick 从 div 到 div

javascript - 如果编辑器的宽度太小,是否有办法将工具栏按钮换行到 TinyMCE 的下一行?

javascript - 如何使用 lodash 将对象转换为数组

Facebook 页面/选项卡中的 javascript [fbjs]

javascript split() 正则表达式

javascript - 使用 ionic angularjs 创建 cookie 并将 cookie 保留很长时间

javascript - "getDate().toJSON()"失去一天

javascript - 更新 javascript 对象的方法

javascript - 指令中的范围 true 给出了错误的结果

javascript - 如何捕获 Angular ng-include 错误