dex*_*com 5 javascript typescript
我从服务器收到一组复杂的对象。我想通过每个对象的子属性过滤原始数组以获取具有唯一对象的新数组,即:
let arr1 = originalArray;
let arr2 = originalArray.filter((ele, idx, arr) => ....
Run Code Online (Sandbox Code Playgroud)
例如,现在 arr1 由 3 个对象组成:
firstObj = {
id: 0,
Details:
{
License: 123456
},
name: 'abc'
};
secondObj = {
id: 1,
Details:
{
License: 131313
},
name: 'xcd'
};
thirdObj = {
id: 2,
Details:
{
License: 123456
},
name: 'bcd'
};
Run Code Online (Sandbox Code Playgroud)
所以,我想过滤数组,以便新返回的数组只包含两个对象,其中“许可证”属性将是唯一的,也就是说,将删除具有相同“许可证”的对象之一。谢谢。
您可以使用array.reduce循环遍历源数组并将项目添加到结果中,如果它不包含相同Details.License
let result = [firstObj, secondObj, thirdObj].reduce((arr, item) => {
let exists = !!arr.find(x => x.Details.License === item.Details.License);
if(!exists){
arr.push(item);
}
return arr;
}, []);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6125 次 |
| 最近记录: |