javascript - 从数组中删除重复项
问题描述
我想从数组中删除对象的每个副本:
const object = [
{ label: "SUA", value: "sua" },
{ label: "SUA", value: "sua" },
{ label: "Florida", value: "florida" }
];
console.log(object.map(i=> [...new Set(i)]))
最后我必须得到这样的:
const object = [
{ label: "Florida", value: "florida" }
];
如何在我的代码中执行此操作?
解决方案
无论您希望在数组中保留多少个每个元素的副本,都可以根据定义创建一个 Map并将每个对象Map<Location, number>
的出现次数制成表格。Location
之后,获取每个元素并将其附加到数组中一次。
type Location = {label: string, value: string};
const object: Location[] = [
{ label: "SUA", value: "sua" },
{ label: "SUA", value: "sua" },
{ label: "Florida", value: "florida" }
];
const objects: Map<Location, number> = new Map();
for (const location of object)
if (objects.has(location))
objects.set(location, objects.get(location) + 1);
else
objects.set(location, 1);
const filtered: Location[] = [];
for (const location of objects)
if (location[1] === 1) // You change 1 to any value depending on how many copies of each you'd like.
filtered.push(location[0];
注意为了清楚起见,这是 TypeScript,但概念是相同的。
推荐阅读
- javascript - 如何在 jquery 中单击时获取其他项目,而不仅仅是第一个项目
- visual-studio-code - 配方因致命错误而终止:spawn latexmk ENOENT
- kubernetes - 如何更改 K8S 默认服务帐号权限?
- python - 为什么图像没有保存在 django 的媒体目录中?
- android - 如何每 24 小时显示一个 AlertDialog?
- javascript - 如何使用 JS 将对象列表转换为指定格式的字符串
- python - 连接 MYSQL 和 Python 时出现 MYSQL.CONNECTOR 问题
- javascript - 我如何合并两个模式
- vue.js - Vuetify:v-datepicker 不显示每个月的所有天数
- visual-studio-code - VS Code 中 Jupyter Notebook 的“内核因退出代码 1 而死”错误