javascript - 转换 javascript 对象的值以删除数组内的重复项

标签 javascript

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

相关文章:

javascript - IE10-使用z-index的透明叠加

javascript - jQuery UI 日期选择器 : how to trigger onChangeMonthYear on page load?

javascript - Require.js 延迟加载远程 url

javascript - 如何在 JavaScript 中使用 Revealing 模块模式

javascript - dHtmlx 甘特时间刻度中的默认开始值和结束值是多少

javascript - 如何使用 python Selenium 或 JavaScript 控制台设置 AngularJS Controller 变量的值?

javascript - 如何使用播放器在 html 中嵌入 flv 或 swf?

javascript - 我可以将行或单元格插入到 HTML 表格中,然后可以通过单击单元格对其进行编辑吗?

javascript - 创建双圈进度图

javascript - 在 ReactJS 项目中将 noUiSlider.js 与 SurveyJS 集成