【发布时间】:2020-12-06 17:51:50
【问题描述】:
我有一个包含 6 个元素的数组。每个元素都有 3 个属性:id、value 和 friends。
在我的代码中,我通过向某些元素的friends 属性添加新值来操作数组,但在某些情况下,这会导致friends 属性中的值重复。例如,在下面的myArray 中,元素 5 不能与元素 1 成为朋友两次——他们要么是朋友,要么不是朋友。
const myArray = [
{"id": 1, "value": 75, "friends": 3},
{"id": 2, "value": 40, "friends": 4},
{"id": 3, "value": 60, "friends": 5},
{"id": 4, "value": 62, "friends": [6, 1]},
{"id": 5, "value": 55, "friends": [1, 1]},
{"id": 6, "value": 33, "friends": [2, 1]}
];
如何删除myArray 中friends 属性中的重复值?
我想要的输出如下所示:
const myArray = [
{"id": 1, "value": 75, "friends": 3},
{"id": 2, "value": 40, "friends": 4},
{"id": 3, "value": 60, "friends": 5},
{"id": 4, "value": 62, "friends": [6, 1]},
{"id": 5, "value": 55, "friends": 1},
{"id": 6, "value": 33, "friends": [2, 1]}
];
我是 javascript 新手,不知道从哪里开始。我的直觉是首先获取所有friends,然后应用一些过滤功能:
const friendList = myArray.map(getFriends);
var uniqueFriends = [...new Set(friendList)];
但这显然行不通。
【问题讨论】:
-
您的直觉很好,但更改并未就地完成。
-
没有必要清理那个副作用,你可以使用solution来解决这个问题
-
感谢@Yevgen Gorbunkov!刚刚注意到编辑并在该帖子中给出了答案。但我也会留下这篇文章,因为它将来可能会有所帮助。
-
@user72716 您需要循环遍历数组并根据需要更改friends 属性。请参阅下面的代码。
标签: javascript arrays properties duplicates