使用lodash替换具有相同id的数组对象

时间:2016-01-08 16:45:56

标签: javascript arrays object lodash

我是新手,并且需要帮助。

我有两个对象:

{
  "data": [
    {
      "RHID": "2",
      "NOME": "Leonor",     
    },
    {
      "RHID": "3",
      "NOME": "José",     
    }
]
}

 {
      "data": [
        {
          "RHID": "2",
          "NOME": "Leonor maria",     
        },
        {
          "RHID": "3",
          "NOME": "José Leo",     
        }
    ]
    }

如果内部对象具有相同的RHID,如何替换它们。保持第二个。 我用

删除重复项
Form.myData[Form.arrData] = _.map(
                                _.uniq(
                                    _.map(Form.myData[Form.arrData],        function (obj) {
                                        return JSON.stringify(obj);
                                    })
                                ), function (obj) {
                                    return JSON.parse(obj);
                                }
                            );

如果不同,我想替换。 非常感谢。

1 个答案:

答案 0 :(得分:1)

用合并方法解决了

$.merge( newData[Form.arrData],Form.myData[Form.arrData]);

而不是

                            $.merge( Form.myData[Form.arrData],newData[Form.arrData]);

然后

Form.myData[Form.arrData] = _.map(
                            _.uniq(
                                _.map( newData[Form.arrData], function (obj) {
                                    return JSON.stringify(obj);
                                })
                            ), function (obj) {
                                return JSON.parse(obj);
                            }
                        );

而不是

  Form.myData[Form.arrData] = _.map(
                            _.uniq(
                                _.map(Form.myData[Form.arrData],        function (obj) {
                                    return JSON.stringify(obj);
                                })
                            ), function (obj) {
                                return JSON.parse(obj);
                            }
                        );