我需要合并/组合里面的4个对象和array. 这些对象包括:

{"field": "name","lang": "it","text": "RegoleAziendali"}
{"field": "pdf_url","lang": "it", "text": "docs/it/file.pdf"}
{"field": "name","lang": "en","text": "CompanyRules"}
{"field": "pdf_url","lang": "en", "text": "docs/en/file.pdf"}

预期结果应由语言合并的2个对象组成.

{"lang": "it","name": "RegoleAziendali","pdf_url":"docs/it/file.pdf"}
{"lang": "en","name": "CompanyRules","pdf_url":"docs/en/file.pdf"}

目前,我正在使用array.forEach合并lang的两个对象.但我找不到一种方法来操作值/属性.如您所见,合并对象中不再需要属性"field".

推荐答案

假设您有一个数组,您可以将其转换为分组问题.

Group by lang using reduce.
After that take the values array of the grouped object using Object.values

const x = [
{"field": "name","lang": "it","text": "RegoleAziendali"},
{"field": "pdf_url","lang": "it", "text": "docs/it/file.pdf"},
{"field": "name","lang": "en","text": "CompanyRules"},
{"field": "pdf_url","lang": "en", "text": "docs/en/file.pdf"}
]

const res = Object.values(x.reduce((acc,{field,lang,text}) => {
  acc[lang] = acc[lang] || {lang}
  acc[lang][field] = text
  return acc
},{}))

console.log(res)

同样的事情可以使用for循环来完成

const x = [{"field": "name","lang": "it","text": "RegoleAziendali"},{"field": "pdf_url","lang": "it", "text": "docs/it/file.pdf"},{"field": "name","lang": "en","text": "CompanyRules"},{"field": "pdf_url","lang": "en", "text": "docs/en/file.pdf"}]

const res = {}
for (const entry of x){
  const {field,lang,text} = entry
  res[lang] = res[lang] || {lang}
  res[lang][field] = text
}

console.log(Object.values(res))

Javascript相关问答推荐

调用removeEvents不起作用

Phaser 3 console. log()特定游戏角色的瓷砖属性

在react js中使用react—router—dom中的Link组件,分配的右侧不能被 destruct ''

我在我的Java代码中遇到了问题,代码的一部分看不到先前定义的对象

我在Django中的视图中遇到多值键错误

扩展类型的联合被解析为基类型

在数组中查找重叠对象并仅返回那些重叠对象

将数组扩展到对象中

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

一个实体一刀VS每个实体多刀S

每次重新呈现时调用useState initialValue函数

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

如何更改Html元素S的 colored颜色 ,然后将其褪色为原始 colored颜色

React Refs不与高阶组件(HOC)中的动态生成组件一起工作

用Reaction-RT-Chart创建实时条形图

如何在css中裁剪成一定Angular 的圆的一部分,而不需要复杂的多边形

如果我将高度设置为其内容的100%,则在Java脚本中拖动以调整面板大小时会冻结

如何在底部重叠多个div?

使用导航时,路径的所有子组件都必须是路径

Qualtrics联合实验脚本随机化条件