Javascript JS-将对象数组转换为对象,使新对象包含唯一的单词

Javascript JS-将对象数组转换为对象,使新对象包含唯一的单词,javascript,arrays,object,Javascript,Arrays,Object,我有一个对象数组。每个对象有两个键:id和text let o = [ { id: 1, text: "Lorem ipsum dolor sit amet consectetur" }, { id: 2, text: "Lorem ipsum dolor sit amet consectetur Dolorem" }, { id: 3, text: "amet consectetur Dolorem" } ] 我需要将此

我有一个对象数组。每个对象有两个键:id和text

let o = [
  {
    id: 1,
    text: "Lorem ipsum dolor sit amet consectetur"
  },
  {
    id: 2,
    text: "Lorem ipsum dolor sit amet consectetur Dolorem"
  },
  {
    id: 3,
    text: "amet consectetur Dolorem"
  }
]
我需要将此数组转换为一个对象,以便该对象包含唯一的单词。这些单词的值是一个列表,其中包含与单词相同的对象的id

后果
如何执行此操作?

减少阵列。修剪、拆分文本,并创建一组单词,以仅获取唯一的单词。使用Set.foreach迭代集合,如果对象不存在,则将每个单词添加到该对象中。将当前id推送到单词的数组:

const arr=[{id:1,text:Lorem ipsum dolor sit amet concertetur},{id:2,text:Lorem ipsum dolor sit amet concertetur Dolorem},{id:3,text:amet concertetur Dolorem}]; const result=arr.reducer,{id,text}=>{ 新建Settext.trim.split/\s+/ .forEachw=>{ 如果!r[w]r[w]=[]; r[w].pushid; }; 返回r; }, {};
console.logresult;请你把你的任何尝试都写下来,并具体说明你在哪里被卡住了。人们会乐意帮忙的。谢谢你能解释一下为什么要使用新集合吗?一个单词可能会在一个句子中出现两次。我应该在forEach中过滤数字和标点符号,还是使用JS过滤方法?要过滤数字和标点符号,请使用regexp而不是split。例如,要仅捕获字母do.match/[A-Za-z]+//g。在拆分/匹配忽略大小写之前,您可能还希望将字符串更改为小写。
{
  Dolorem:  [2, 3]
  Lorem: [1, 2]
  amet:  [1, 2, 3]
  consectetur: [1, 2, 3]
  dolor:  [1, 2]
  ipsum:  [1, 2]
  sit:  [1, 2]
}