javascript - 如何获得按对象键过滤的唯一对象数组?
问题描述
我有一个对象数组。对象包含有关城市及其几何信息的信息。这是我的数组
> [ {country: "AM", name: "Abovyan", lat: 40.27368, lng: 44.63348},
> {country: "AM", name: "Abovyan", lat: 40.04851, lng: 44.54742},
> {country: "AM", name: "Kapan", lat: 39.20755, lng: 46.4057} ]
如您所见,我有 2 个具有相同名称的对象(例如 Abovyan),但它们的几何信息不同。这个数组是我从一些 API 获得的,我想过滤它。我如何将其过滤为只有一个具有特定键/值的对象,在这种情况下是名称?
我想得到一个像这样的过滤数组`
[ {country: "AM", name: "Abovyan", lat: 40.27368, lng: 44.63348},
{country: "AM", name: "Kapan", lat: 39.20755, lng: 46.4057} ]
解决方案
.name
在这里,我们使用属性作为对象键从非重复项构建一个对象。完成后,我们从该对象中获取值数组。
var data = [ your data ];
var out = Object.values(
data.reduce( (c, e) => {
if (!c[e.name]) c[e.name] = e;
return c;
}, {})
);
推荐阅读
- wso2 - 如何在 WSO2 MI (EI-7) 中管理用户角色?
- django-templates - Django:设置页面。与使用 OS 不同,如何使用 pathlib 路径为项目子目录提供路径?
- ruby-on-rails - 不是 HTTP URI
- jquery - Change part of url when option is selected
- image-processing - 解决灰度图像中的二维峰值(ROI 检测任务)
- java - 在 Android 中将应用程序图标对齐到状态栏的右侧
- javascript - AJAX 请求未获取 $_SESSION 变量的更新值
- python - 从python中的函数返回值时,它返回为空
- python - 手写数字图像分类的特征提取
- android - 如何使用两个 List 制作 ExpandableListView