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

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

Object.assign() 用于替換 json 的對象

Object.assign() 用于替換 json 的對象

慕娘9325324 2021-11-25 15:59:08
我JSON看起來像這樣:{"ArrayInfo": [    {        "name": "A",        "Id": "1"    },    {        "name": "B",        "Id": "2"    },    {        "name": "C",        "Id": "3"    },    {        "name": "D",        "Id": "4"    }]}我想JSON用另一個對象替換一個對象。例如我有這個對象:{"name":"E","Id":"5"}它將被以下對象替換JSON:{"name":"B","Id":"2"}JSON 應如下所示:{"ArrayInfo": [    {        "name": "A",        "Id": "1"    },    {        "name": "E",        "Id": "5"    },    {        "name": "C",        "Id": "3"    },    {        "name": "D",        "Id": "4"    }]}我所做的是使用Object.assign但新對象將添加到數組而不是替換。(所有數據都將是動態的,但為了更易于理解,我使用靜態數據)const itemToReplace = { "name": "E", "Id": "5" };const prevItem = ArrayInfo[2]ArrayInfo = ArrayInfo.map((el, idx) => {  return Object.assign({}, el, { prevItem: itemToReplace });});let NewArryInfo = ArrayInfoconsole.log(NewArryInfo)結果console.log(NewArryInfo):{"ArrayInfo": [    {        "name": "A",        "Id": "1"    },    {        "name": "B",        "Id": "2"    },    {        "name": "C",        "Id": "3"    },    {        "name": "D",        "Id": "4"    }    {        "name": "E",        "Id": "5"    }]}
查看完整描述

3 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

您可以使用Array.prototype.splice來替換 Array 中的項目。


const replaceItem = {"name":"E","Id":"5"}

const ArrayInfo = [

    {

        "name": "A",

        "Id": "1"

    },

    {

        "name": "B",

        "Id": "2"

    },

    {

        "name": "C",

        "Id": "3"

    },

    {

        "name": "D",

        "Id": "4"

    }

];

ArrayInfo.splice(1, 1, replaceItem); // remove second item and replace

console.log(ArrayInfo);


查看完整回答
反對 回復 2021-11-25
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

const object = {

  "ArrayInfo": [{

      "name": "A",

      "Id": "1"

    },

    {

      "name": "B",

      "Id": "2"

    },

    {

      "name": "C",

      "Id": "3"

    },

    {

      "name": "D",

      "Id": "4"

    }

  ]

};


const objectToReplace = {

  "name": "B",

  "Id": "2"

};


const updatedObject = Object.assign({}, object, {

  ArrayInfo: object.ArrayInfo.map((info) => {

    if (info.Id === objectToReplace.Id && info.name === objectToReplace.name) {

      return {

        "name": "E",

        "Id": "5"

      };

    }


    return info;


  })

});


console.log(updatedObject);


查看完整回答
反對 回復 2021-11-25
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

嘗試這個!


let ArrayInfo = [{"name": "A","Id": "1"},{"name": "B","Id": "2"},{"name": "C","Id": "3"},{"name": "D","Id": "4"}];

const onReplace = {"name":"E","Id":"5"};

const toReplace = {"name": "B","Id": "2"};


function replaceArray(array, onReplace, toReplace) {

  const removeIndex = array.map(item => { return item.name; }).indexOf(toReplace.name);

  array.splice(removeIndex, removeIndex, onReplace);

  return array

}


console.log(replaceArray(ArrayInfo, onReplace, toReplace));


查看完整回答
反對 回復 2021-11-25
  • 3 回答
  • 0 關注
  • 305 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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