【发布时间】:2022-11-23 04:15:22
【问题描述】:
我需要合并/合并 4 个内部对象和数组。 这些对象是:
{"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 合并两个对象。但我找不到操纵值/属性的方法。如您所见,合并后的对象不再需要属性“字段”。
【问题讨论】:
-
使用一个对象,其键是语言,值是新对象。然后您可以遍历原始数组,将属性添加到适当的新对象。
-
你试过什么?我们不是免费的编码服务。见How to Ask。
-
变量对象={}; array.forEach(function(e){ if(e && e.lang){ obj[e.lang] = obj[e.lang] || {}; for(var _k in e) obj[e.lang][ _k] = e[_k] } });返回 Object.keys(obj).map(function (key) {return obj[key]});
标签: javascript object merge