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

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

如何將單個鍵值對對象轉換為具有鍵值對的對象數組?

如何將單個鍵值對對象轉換為具有鍵值對的對象數組?

千萬里不及你 2023-03-24 16:26:28
我有一個鍵值對的單個對象,每個鍵都有一個數組作為值,如何通過將它與另一個對象數組進行比較,將其轉換為具有鍵值對屬性的對象數組。var keys = [];for (var k in obj) keys.push(k);輸入:obj =  {          "name": "jack",          "age": 10,          "country": "india",          "state": "Delhi"        }        obj2 = [{key: "product", type:"", value:"", required:"true", mandatory:"true"},        {key: "sub-product", type:"", value:"", required:"true", mandatory:"true"},        {key: "name", type:"text", value:"", required:"true", mandatory:"true"},        {key: "age", type:"text", value:"[0-9]", required:"true", mandatory:"true"},        {key: "country", type:"text", value:"[a-z]", required:"true", mandatory:"true"},        {key: "state", type:"text", value:"[a-z]", required:"true", mandatory:"true"}]預期輸出:result = [{key: "name", type:"text", value:"", required:"true", mandatory:"true",setValue:"jack"},        {key: "age", type:"text", value:"[0-9]", required:"true", mandatory:"true",setValue:"10"},        {key: "country", type:"text", value:"[a-z]", required:"true", mandatory:"true",setValue:"india"},        {key: "state", type:"text", value:"[a-z]", required:"true", mandatory:"true",setValue:"Delhi"}];
查看完整描述

3 回答

?
ABOUTYOU

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

循環結束obj2。如果該key值是 的屬性obj,則將相應的值復制到setValue對象的屬性中,并將其壓入結果。


obj = {

  "name": "jack",

  "age": 10,

  "country": "india",

  "state": "Delhi"

};

obj2 = [{key: "product", type="", value="", required="true", mandatory="true"},

        {key: "sub-product", type="", value="", required="true", mandatory="true"},

        {key: "name", type="text", value="", required="true", mandatory="true"},

        {key: "age", type="text", value="[0-9]", required="true", mandatory="true"},

        {key: "country", type="text", value="[a-z]", required="true", mandatory="true"},

        {key: "state", type="text", value="[a-z]", required="true", mandatory="true"}];


var result = [];

obj2.forEach(o => {

  if (o.key in obj) {

    o.setValue = obj[o.key];

    result.push(o);

  }

});

console.log(result);


查看完整回答
反對 回復 2023-03-24
?
LEATH

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

您可以先使用過濾它hasOwnProperty,然后將其映射到設置setValue屬性。這是實現:


var obj = { "name": "jack", "age": 10, "country": "india", "state": "Delhi" };

var obj2 =[{key: "product", type:"", value:"", required:"true", mandatory:"true"}, {key: "sub-product", type:"", value:"", required:"true", mandatory:"true"}, {key: "name", type:"text", value:"", required:"true", mandatory:"true"}, {key: "age", type:"text", value:"[0-9]", required:"true", mandatory:"true"}, {key: "country", type:"text", value:"[a-z]", required:"true", mandatory:"true"}, {key: "state", type:"text", value:"[a-z]", required:"true", mandatory:"true"}];



var result = obj2.filter(k=>obj.hasOwnProperty(k.key)).map(p=>({...p, setValue:obj[p.key]}));


console.log(result);


查看完整回答
反對 回復 2023-03-24
?
撒科打諢

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

你可以使用Array.prototype.flatmap來實現這個

const obj = {

  "name": "jack",

  "age": 10,

  "country": "india",

  "state": "Delhi"

}

const obj2 = [

  {key: "product", type:"", value:"", required:"true", mandatory:"true"},

  {key: "sub-product", type:"", value:"", required:"true", mandatory:"true"},

  {key: "name", type:"text", value:"", required:"true", mandatory:"true"},

  {key: "age", type:"text", value:"[0-9]", required:"true", mandatory:"true"},

  {key: "country", type:"text", value:"[a-z]", required:"true", mandatory:"true"},

  {key: "state", type:"text", value:"[a-z]", required:"true", mandatory:"true"}

]


const result = obj2.flatMap((entry) => {

  if (obj[entry.key]) {

    return {

      ...entry,

            setValue: obj[entry.key],

    }

  }

    return []

})


console.log(result)



查看完整回答
反對 回復 2023-03-24
  • 3 回答
  • 0 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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