我有一个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)