Javascript 如何删除带有下划线的字符串对象数组中的重复项

Javascript 如何删除带有下划线的字符串对象数组中的重复项,javascript,arrays,json,filter,underscore.js,Javascript,Arrays,Json,Filter,Underscore.js,我有这张桌子 [ "PC", "PS3,Xbox 360,PC,PS4,Xbox One,Nintendo Switch", "PC,PS4,Xbox One,Nintendo Switch", "PS4,PC", "PS4,PS5,Xbox One,Nintendo Switch,PC", "PC,PS4,Xbox One",

我有这张桌子

[
    "PC",
    "PS3,Xbox 360,PC,PS4,Xbox One,Nintendo Switch",
    "PC,PS4,Xbox One,Nintendo Switch",
    "PS4,PC",
    "PS4,PS5,Xbox One,Nintendo Switch,PC",
    "PC,PS4,Xbox One",
    "PC,Android"
]
我想删除重复项并获得以下结果:

["PS3,Xbox 360,PC,PS4,Xbox One,Nintendo Switch, Android"]
我用下划线js尝试了这一点,但给出了空数组:

 data = _.chain(games)
        .groupBy('platforms')
        .map((value, key) => { return key })
        
    
    return data
json数据:

const a=[
"个人电脑",,
“PS3、Xbox 360、PC、PS4、Xbox One、任天堂交换机”,
“PC、PS4、Xbox One、任天堂交换机”,
“PS4,PC”,
“PS4、PS5、Xbox One、任天堂交换机、PC”,
“PC、PS4、Xbox One”,
“个人电脑,安卓”
];
const result=ux0.chain(a)
.map(s=>s.split(','))
.flatte()
.uniq()
.value()
。加入(‘,’);
console.log([result])
const a=[
"个人电脑",,
“PS3、Xbox 360、PC、PS4、Xbox One、任天堂交换机”,
“PC、PS4、Xbox One、任天堂交换机”,
“PS4,PC”,
“PS4、PS5、Xbox One、任天堂交换机、PC”,
“PC、PS4、Xbox One”,
“个人电脑,安卓”
];
const result=ux0.chain(a)
.map(s=>s.split(','))
.flatte()
.uniq()
.value()
。加入(‘,’);
console.log([result])

我相信首先要做的就是像这样规范化数组

const array = [
    "PC",
    "PS3,Xbox 360,PC,PS4,Xbox One,Nintendo Switch",
    "PC,PS4,Xbox One,Nintendo Switch",
    "PS4,PC",
    "PS4,PS5,Xbox One,Nintendo Switch,PC",
    "PC,PS4,Xbox One",
    "PC,Android"
]

let arrayNormalized = []

array.every(item => {
  const arrayFromItem = item.split(',')
  arrayNormalizad = [...arrayNormalizad, ...arrayFromItem]
})
之后,您可以使用来自_js的函数uniq

arrayNormalized = _.uniq(arrayNormalizad)

我相信首先要做的就是像这样规范化你的数组

const array = [
    "PC",
    "PS3,Xbox 360,PC,PS4,Xbox One,Nintendo Switch",
    "PC,PS4,Xbox One,Nintendo Switch",
    "PS4,PC",
    "PS4,PS5,Xbox One,Nintendo Switch,PC",
    "PC,PS4,Xbox One",
    "PC,Android"
]

let arrayNormalized = []

array.every(item => {
  const arrayFromItem = item.split(',')
  arrayNormalizad = [...arrayNormalizad, ...arrayFromItem]
})
之后,您可以使用来自_js的函数uniq

arrayNormalized = _.uniq(arrayNormalizad)

您可以使用
Array.map
到组数组,
Array.flat
到marge数组,并使用
Set
删除重复项

let input1=[“PC”、“PS3、Xbox 360、PC、PS4、Xbox One、任天堂交换机”、“PC、PS4、Xbox One、任天堂交换机”、“PS4、PC”、“PS4、PS5、Xbox One、任天堂交换机、PC”、“PC、PS4、Xbox One”、“PC、Android”];
让输入2={“数据”:[{“用户ID”:8,“游戏”:“传奇联盟”,“游戏时间”:500,“类型”:“MOBA”,“平台”:[“PC”]},{“用户ID”:7,“游戏”:“魔兽世界”,“游戏时间”:1500,“类型”:“MMORPG”,“平台”:[“PC”]},{“用户ID”:88,“游戏”:“黑暗灵魂”,“游戏时间”:109,“类型”:“动作RPG”,“平台”:[“PS3”,“Xbox 360”,“PC”,“PS4”、“Xbox One”、“Nintendo Switch”]},{“用户ID”:88,“游戏”:“巫师3:野生狩猎”,“游戏时间”:9,“流派”:“RPG”,“平台”:[“PC”,“PS4”,“Xbox One”,“Nintendo Switch”]},{“用户ID”:1,“游戏”:“我们最后的2”,“游戏时间”:100,“流派”:“FPS”,“平台”:[“PS4”,“PC”]},{“用户ID”:7,“游戏”:“杀手3”,“游戏时间”:60,“流派”“:”隐形“,”平台“:”PS4“,”PS5“,”Xbox One“,”任天堂开关“,”PC“,”游戏“,”Minecraft“,”playTime“,”游戏时间“:”1002,“流派“,”沙盒“,”平台“:”PC“,”游戏“:”炉边石“,”游戏时间“:”1000,“流派“:”纸牌游戏“,”平台“:”PC“,”游戏“,”FIFA“,”游戏时间“,”2000,“流派“,”运动“,”,“平台”:[“PC”、“PS4”、“Xbox One”]},{“用户ID”:2,“游戏”:“巫师3:狂野狩猎”,“游戏时间”:78,“流派”:“RPG”,“平台”:[“PC”、“PS4”、“Xbox One”、“任天堂开关”]},{“用户ID”:47,“游戏”:“传奇联盟”,“游戏时间”:850,“流派”:“MOBA”,“平台”:[“PC”},{“用户ID”:2,“游戏时间”:5000,“流派”“:“多人”、“平台”:[“PC”、“Android”]},{“用户ID”:2,“游戏”:“Valorant”、“playTime”:2000,“流派”:“FPS”、“平台”:[“PC”]},{“用户ID”:9,“游戏”:“Valorant”、“playTime”:80,“流派”:“FPS”、“平台”:[“PC”]},{“用户ID”:9,“游戏”:“黑暗灵魂”,“playTime”:109,“流派”:“RPG”、“平台”:[“PS3”、“Xbox 360”、“PC”、“PS4”,“Xbox One”,“Nintendo Switch”]},{“用户ID”:9,“游戏”:“巫师3:疯狂狩猎”,“游戏时间”:900,“流派”:“RPG”,“平台”:[“PC”,“PS4”,“Xbox One”,“Nintendo Switch”]},{“用户ID”:24,“游戏”:“传奇联盟”,“游戏时间”:300,“流派”:“MOBA”,“平台”:[“PC”]},{“用户ID”:24,“游戏”:“魔兽世界”,“游戏时间”:800,“体裁”:“MMORPG”,“平台”:[“PC”]},{“用户ID”:54,“游戏”:“地雷手工艺”,“游戏时间”:231,“体裁”:“沙盒”,“平台”:[“PC”]},{“用户ID”:7,“游戏”:“地雷手工艺”,“游戏时间”:777,“体裁”:“沙盒”,“平台”:[“PC”]},{“用户ID”:7,“游戏”:“杀手3”,“游戏时间”:90,“体裁”:“隐身任天堂交换机“,”PC“]}]}
让removeDuplicate=(数组,过程)=>[…新集合(array.map(procedure.flat())];
让result1=removeDuplicate(input1,item=>item.split(“,”);
让result2=removeDuplicate(input2.data,({platforms})=>platforms);

console.log({result1,result2});
您可以使用
Array.map
到groups数组、
Array.flat
到marge数组和
Set
删除重复项

let input1=[“PC”、“PS3、Xbox 360、PC、PS4、Xbox One、任天堂交换机”、“PC、PS4、Xbox One、任天堂交换机”、“PS4、PC”、“PS4、PS5、Xbox One、任天堂交换机、PC”、“PC、PS4、Xbox One”、“PC、Android”];
让输入2={“数据”:[{“用户ID”:8,“游戏”:“传奇联盟”,“游戏时间”:500,“类型”:“MOBA”,“平台”:[“PC”]},{“用户ID”:7,“游戏”:“魔兽世界”,“游戏时间”:1500,“类型”:“MMORPG”,“平台”:[“PC”]},{“用户ID”:88,“游戏”:“黑暗灵魂”,“游戏时间”:109,“类型”:“动作RPG”,“平台”:[“PS3”,“Xbox 360”,“PC”PS4、Xbox One、Nintendo Switch“]}、{“用户ID”:88、“游戏”:“巫师3:疯狂狩猎”、“游戏时间”:9、“流派”:“RPG”、“平台”:[“PC”、“PS4”、“Xbox One”、“Nintendo Switch”]}、{“用户ID”:1、“游戏”:“最后的我们2”、“游戏时间”:100、“流派”:“FPS”、“平台”:[“PS4”、“PC”]}、{“用户ID”:7、“游戏”:“杀手3”、“游戏时间”:60,“流派”“:”隐形“,”平台“:”PS4“,”PS5“,”Xbox One“,”任天堂开关“,”PC“,”游戏“,”Minecraft“,”playTime“,”游戏时间“:”1002,“流派“,”沙盒“,”平台“:”PC“,”游戏“:”炉边石“,”游戏时间“:”1000,“流派“:”纸牌游戏“,”平台“:”PC“,”游戏“,”FIFA“,”游戏时间“,”2000,“流派“,”运动“,”,“平台”:[“PC”、“PS4”、“Xbox One”]},{“用户ID”:2,“游戏”:“巫师3:疯狂狩猎”,“游戏时间”:78,“流派”:“RPG”,“平台”:[“PC”、“PS4”、“Xbox One”、“任天堂开关”]},{“用户ID”:47,“游戏”:“传奇联盟”,“游戏时间”:850,“流派”:“MOBA”,“平台”:[“PC”},{“用户ID”:2,“游戏时间”:“在我们中间”,“游戏时间”