我得到了一个包含以下数据结构的数组:
[
{
_id: 'dgPMHw3ivRSp3wyWe',
content: {
en: [{ content: 'foo', extended: 'bar' }, {...}],
it: [{ content: 'any', extended: 'thing' }, {...}]
},
order: 1,
parent: 'Dn59y87PGhkJXpaiZ'
},
{...}
]
我需要通过选择特定语言的第一个元素来修改此数组以仅获取content
的字符串值。
因此对于英语而言,结果应为:
[
{
_id: 'dgPMHw3ivRSp3wyWe',
content: 'foo',
extended: bar,
order: 1,
parent: 'Dn59y87PGhkJXpaiZ'
}
]
我知道我可以用
获取字符串const language = 'en'
array.forEach(doc => {
console.log(doc.content[language][0].content)
console.log(doc.content[language][0].extended)
})
但是如何更换它以获得我的结果?
答案 0 :(得分:3)
你可以这样做:
let result = data.map(e => ({
...e,
content: e.content[language].content,
extended: e.content[language].extended
}));
答案 1 :(得分:3)
以下是无需列出每个属性的方法:
var array = [{
_id: 'dgPMHw3ivRSp3wyWe',
"content": {
en: {
content: 'foo',
extended: 'bar'
},
it: {
content: 'any',
extended: 'thing'
}
},
order: 1,
parent: 'Dn59y87PGhkJXpaiZ'
}];
const language = "en";
array = array.map(doc => {
doc = Object.assign(doc, doc.content[language]);
return doc;
});
console.log(array);