簡體   English   中英

我有一個需要在 object (JAVASCRIPT) 中轉換的數組

[英]I have an array that I need to transform in a object (JAVASCRIPT)

好吧,基本上我有一個數組,里面有一個對象,這個對象里面有一個對象數組,看起來像這樣:

var array = [
  {articles: [
    {number: "123"},
    {number: "143"},
  ]},
  {paragraph: [
    {number: "197"},
  ]},
]

我真的很願意得到一個 object 值作為回報,就像這樣

{articles: [...], paragraph: [...]}

有人能幫助我嗎?

您可以按嵌套對象的外部屬性進行分組。

 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; }

遍歷數組,並使用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);

這可以使用數組 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 行用一個空的 object 初始化我們的 reducer,然后遍歷數組。 每次迭代時,我們都會返回 object,並在其末尾附加新的鍵和值。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM