我有一个 Javascript 对象(大小不定),其中值是一个字符串数组。例如:
var obj = {
"article1": ["john locke", "sawyer", "john Locke"] ,
"article2": ["person3", "person4"]
}
我想进行转换,以便删除任何重复的字符串。
这意味着对于上面的例子,我有
var finalObj = {
"article1": ["john locke", "sawyer"], //"john Locke" was removed"
"article2": ["person3", "person4"]
}
它必须不区分大小写,即如果开头已经有“john locke”,则应删除 john Locke。
如何实现这一目标?
最佳答案
因此,首先循环遍历键,然后使用集合对数组进行重复数据删除。因为看起来大小写并不重要,所以在集合中使用数组之前需要将其转为小写。
var obj = {
"article1": ["john locke", "sawyer", "john Locke"],
"article2": ["person3", "person4"]
}
var finalObj = Object.entries(obj).reduce((o, [key, arr]) => {
o[key] = [...new Set(arr.map(t => t.toLowerCase()))]
return o
}, {})
console.log(finalObj)
关于javascript - 转换 javascript 对象的值以删除数组内的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57889595/