如何删除数组 javascript 中的重复值?

How to remove duplicate value in array javascript?

我有这样的数据:

data = [
    {
        "emp_id": 1,
        "hashtag_id": [
            1,
            3,
            3,
            4,
            2,
            2,
            1,
            1
        ]
    },
    {
        "emp_id": 2,
        "hashtag_id": [
            1,
            1
        ]
    },
    {
        "emp_id": 3,
        "hashtag_id": [
            3,
            1
        ]
    },
    {
        "emp_id": 4,
        "hashtag_id": [
            1,
            3,
            4
        ]
    },
    {
        "emp_id": 5,
        "hashtag_id": 1
    },
    {
        "emp_id": 6,
        "hashtag_id": [
            1,
            4
        ]
    }
]

我想删除 hashtag_id 中的重复值(如果存在)。

这是我所期望的:

data = [
    {
        "emp_id": 1,
        "hashtag_id": [
            1,
            3,
            4,
            2,
        ]
    },
    {
        "emp_id": 2,
        "hashtag_id": [
            1
        ]
    },
    {
        "emp_id": 3,
        "hashtag_id": [
            3,
            1
        ]
    },
    {
        "emp_id": 4,
        "hashtag_id": [
            1,
            3,
            4
        ]
    },
    {
        "emp_id": 5,
        "hashtag_id": 1
    },
    {
        "emp_id": 6,
        "hashtag_id": [
            1,
            4
        ]
    }
]

我正在尝试这个:

data = data.map(item => {
        item.hashtag_id = [...new Set(item.hashtag_id)]
        return item
      })

但出现错误:

"number 1 is not iterable (cannot read property Symbol(Symbol.iterator))"

这有什么问题吗?

如果还不够,请告诉我是否需要更多信息来解决该问题

在最后一项中,hashtag_id 是一个数字而不是数字数组。由于数字不是可迭代的,因此您不能对其进行 Set 导致错误。

要考虑 hashtag_id 是数字的可能性,请执行以下操作:

data = data.map((item) => {
    item.hashtag_id = Array.isArray(item.hashtag_id) ? [...new Set(item.hashtag_id)] : item.hashtag_id;
    return item;
})