好吧,基本上我有一個陣列,里面有一個物件,這個物件里面有一個物件陣列,看起來像這樣:
var array = [
{articles: [
{number: "123"},
{number: "143"},
]},
{paragraph: [
{number: "197"},
]},
]
而且我真的很愿意得到一個物件值作為回報,就像這樣
{articles: [...], paragraph: [...]}
有人能幫助我嗎?
uj5u.com熱心網友回復:
這可以使用陣列 reducer來完成。
const array = [
{ articles: [{ number: "123" }, { number: "143" }] },
{ paragraph: [{ number: "197" }] },
];
const formatted = array.reduce((accumulator, currentValue) => {
const [[key, value]] = Object.entries(currentValue);
return { ...accumulator, [key]: value }
}, {});
console.log(formatted);
我們正在做的是在第 9 行用一個空物件初始化我們的 reducer,然后遍歷陣列。每次迭代時,我們都會回傳物件,并在其末尾附加新的鍵和值。
uj5u.com熱心網友回復:
您可以按嵌套物件的外部屬性進行分組。
const
array = [{ articles: [{ number: "123" }, { number: "143" }] }, { paragraph: [{ number: "197" }] }],
result = array.reduce((r, o) => {
Object
.entries(o)
.forEach(([k, a]) => (r[k] ??= []).push(...a));
return r;
}, {});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
uj5u.com熱心網友回復:
遍歷陣列,并用于Object.entries獲取鍵和值。
const array=[{articles:[{number:"123"},{number:"143"}]},{paragraph:[{number:"197"}]}];
const out = {};
for (const obj of array) {
const [[key, value]] = Object.entries(obj);
out[key] = value;
}
console.log(out);
uj5u.com熱心網友回復:
let array = [
{articles: [
{number: "123"},
{number: "143"},
]},
{paragraph: [
{number: "197"},
]},
]
let obj = {}
array.forEach(a => {
if('articles' in a){
obj.articles = a.articles
}
if('paragraph' in a){
obj.paragraph = a.paragraph
}
})
console.log(obj)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/421963.html
標籤:
