Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将对象的一部分提取到数组中_Javascript_Json_Angular - Fatal编程技术网

Javascript 将对象的一部分提取到数组中

Javascript 将对象的一部分提取到数组中,javascript,json,angular,Javascript,Json,Angular,我有一个由数百个对象组成的数组,如下所示: { "id" : 893, .... "responsable" : { "id" : 792, "version" : 13, "username" : "xxxxx@mail.es", "nombre" : "Peter", "apellido1" : "Murphy", "apellido2" : "XXX" } } 在

我有一个由数百个对象组成的数组,如下所示:

{
    "id" : 893,
    ....
    "responsable" : {
        "id" : 792,
        "version" : 13,
        "username" : "xxxxx@mail.es",
        "nombre" : "Peter",
        "apellido1" : "Murphy",
        "apellido2" : "XXX"
   }
}

在我的对象中,我有另一个对象是“负责任的”。需要获取这些对象的数组,但每个对象仅一次(删除重复)

您可以使用
reduce
将数据汇总到对象。并使用
Object.values
将对象转换为数组

本例将根据
responsable.id

让arr=[
{“id”:893,“负责”:{“id”:792,“版本”:13,“用户名”:xxxxx@mail.es,“nombre”:“John”,“apellido1”:“Murphy”,“apellido2”:“XXX”},
{“id”:894,“负责”:{“id”:793,“版本”:13,“用户名”:xxxxx@mail.es,“nombre”:“彼得”,“阿佩利多1”:“墨菲”,“阿佩利多2”:“XXX”},
{“id”:895,“负责”:{“id”:792,“版本”:13,“用户名”:xxxxx@mail.es,“nombre”:“John”,“apellido1”:“Murphy”,“apellido2”:“XXX”},
{“id”:896,“负责”:{“id”:794,“版本”:13,“用户名”:xxxxx@mail.es,“nombre”:“保罗”,“阿佩利多1”:“墨菲”,“阿佩利多2”:“XXX”}
];
让responsable=Object.values(arr.reduce((c,v)=>Object.assign(c,{[v.responsable.id]:v.responsable}),{});

控制台日志(负责)删除重复项的标准是什么?你如何区分两个物体?