Angular 4中如何从一个对象数组中移除重复项

3

我在我的Angular 4应用程序中有一个json数组对象,我需要在其中找到唯一的空间类型。

Json数组:

[{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Hospital_Lab"}},
{"label":{"Space_Type":"Office_OpenOffice"}},
{"label":{"Space_Type":"Office_PrivateOffice"}},
{"label":{"Space_Type":"Office_PrivateOffice"}},{},
{"label":{"Space_Type":"Office_PrivateOffice"}},
{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Hospital_Lab"}},{"label":{"Space_Type":"Office_OpenOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_OpenOffice"}},{}]

我想要去除所有重复的空格类型。有人能告诉我如何做吗?我想要的结果是:

[{Idx:0,Label:"Office_PrivateOffice"},{Idx:1,Label:"Office_OpenOffice"}]

这是纯JavaScript数据操作。你可以编写一个函数来完成,或者你可以使用lodash或underscore。 - Aniruddha Das
2个回答

6
您可以使用lodash方法_.uniqWith

var jsonarray =  [{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Hospital_Lab"}},
{"label":{"Space_Type":"Office_OpenOffice"}},
{"label":{"Space_Type":"Office_PrivateOffice"}},
{"label":{"Space_Type":"Office_PrivateOffice"}},{},
{"label":{"Space_Type":"Office_PrivateOffice"}},
{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Hospital_Lab"}},{"label":{"Space_Type":"Office_OpenOffice"}},{"label":{"Space_Type":"Office_PrivateOffice"}},{"label":{"Space_Type":"Office_OpenOffice"}},{}];


var filtered =  _.uniqWith(jsonarray, _.isEqual);

console.log(filtered);
<script src='https://cdn.jsdelivr.net/lodash/4.17.2/lodash.min.js'></script>


1

您可以使用lodash方法_.uniqBy(root, 'duplicateElement');。使用此方法的优点是,您可以告诉lodash要删除哪个元素的重复项。

var newJsonFile = _.uniqBy(label, 'Space_Type'); 
console.log(newJsonFile);

在Angular中,您需要下载lodash包。
npm install lodash

然后导入它。
import * as _ from 'lodash';    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接