亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript - 將對象轉換為數組對象

Javascript - 將對象轉換為數組對象

慕碼人8056858 2023-05-25 18:10:20
嘗試將以下對象(從 API 響應中獲取)轉換為數組對象。const oldObj = {    Georgia : {        notes: "lorem ipsum",        lat: "32.1656",        long: "82.9001"    },    Alabama : {        notes: "lorem ipsum",        lat: "32.3182",        long: "86.9023"    }}我的預期如下:const desireArray = [    {        name: "Georgia",        notes: "lorem ipsum",        lat: "32.1656",        long: "82.9001"    },    {        name: "Alabama",        notes: "lorem ipsum",        lat: "32.3182",        long: "86.9023"    }];嘗試使用 forEach,但我認為這不是方法,似乎返回了錯誤。oldObj.forEach((el, i) => {    console.log(el);});類型錯誤:oldObj.forEach 不是函數有什么幫助嗎?
查看完整描述

4 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

forEach是數組的方法,同時你oldObj是對象


首先你必須將它轉換為數組,這里我們可以做的是將對象轉換為鍵值對數組


使用 withmap可以使代碼更短


const oldObj = {

  Georgia: {

    notes: "lorem ipsum",

    lat: "32.1656",

    long: "82.9001",

  },

  Alabama: {

    notes: "lorem ipsum",

    lat: "32.3182",

    long: "86.9023",

  },

}


const res = Object.entries(oldObj).map(([name, obj]) => ({ name, ...obj }))


console.log(res)


查看完整回答
反對 回復 2023-05-25
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

const oldObj = {

    Georgia : {

        notes: "lorem ipsum",

        lat: "32.1656",

        long: "82.9001"

    },

    Alabama : {

        notes: "lorem ipsum",

        lat: "32.3182",

        long: "86.9023"

    }

}


const desireArray = Object.keys(oldObj).map((key) => ({ name: key, ...oldObj[key] }));

解釋一下


const keys = Object.keys(oldObj);

const desireArray = keys.map((key) => {

    return {

        name: key,

        notes: oldObj[key].notes,

        lat: oldObj[key].lat,

        long: oldObj[key].long

    }

});


查看完整回答
反對 回復 2023-05-25
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

  1. 使用查找條目Object.entries

  2. destructuring通過將鍵添加到累加器來減少當前對象

  3. 推入結果數組

const oldObj = {

? ? Georgia : {

? ? ? ? notes: "lorem ipsum",

? ? ? ? lat: "32.1656",

? ? ? ? long: "82.9001"

? ? },

? ? Alabama : {

? ? ? ? notes: "lorem ipsum",

? ? ? ? lat: "32.3182",

? ? ? ? long: "86.9023"

? ? }

};


const result = Object.entries(oldObj).reduce((acc, curr) => {

? ? const [key, val] = curr;

? ??

? ? acc.push({

? ? ? ? name: key,

? ? ? ? ...val

? ? });

? ? return acc;

}, []);


console.log(result);


查看完整回答
反對 回復 2023-05-25
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

const oldObj = {

    Georgia : {

        notes: "lorem ipsum",

        lat: "32.1656",

        long: "82.9001"

    },

    Alabama : {

        notes: "lorem ipsum",

        lat: "32.3182",

        long: "86.9023"

    }

};


function convertObjToArr(obj) {

  let result = [];

  for(let key in obj) {

    result.push({name: key, ...obj[key]});

  }

  return result;

}


console.log(convertObjToArr(oldObj));


或嘗試其他簡單的解決方案


 return Object.keys(obj).map(item => ( {name: item, ...obj[item]} ));


查看完整回答
反對 回復 2023-05-25
  • 4 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號