我有一個陣列,grpList包含唯一 ID 和唯一名稱。
grpList = [
{ name: "grp1", id: "1" },
{ name: "grp2", id: "2" },
{ name: "grp3", id: "3" },
{ name: "grp4", id: "4" },
{ name: "grp5", id: "5" },
{ name: "grp6", id: "6" }
]
另一種型別的陣列,在下面的陣列currentList 中,它只有兩種型別,即Gor Q,型別'G'它具有具有唯一名稱的陣列值。這些名稱是從grpListArray映射的。
currentList = [
{ name: "name1", type: "G", values: ["grp1", "grp3"] },
{ name: "name2", type: "Q", values:"abcd" },
{ name: "name3", type: "G", values: ["grp1", "grp5"] },
{ name: "name4", type: "Q", values:"frd" },
{ name: "name5", type: "G", values: ["grp1", "grp2"] },
{ name: "name6", type: "Q", values:"erer" }
]
現在我想要的是創建一個包含型別資料的新陣列,currentList即它應該包含currentList陣列的屬性,并且它應該與對應于grpList陣列的id 映射。
例子:
newArry = [
{ name: "name1", type: "G", values: ["1", "3"] },
{ name: "name2", type: "Q", values:"abcd" },
{ name: "name3", type: "G", values: ["1", "5"] },
{ name: "name4", type: "Q", values:"frd" },
{ name: "name5", type: "G", values: ["1", "2"] },
{ name: "name6", type: "Q", values:"erer" }
]
uj5u.com熱心網友回復:
可以遍歷每個串列,洗掉每個值grp有replace:
const currentList = [
{ name: "name1", type: "G", values: ["grp1", "grp3"] },
{ name: "name2", type: "Q", values:"abcd" },
{ name: "name3", type: "G", values: ["grp1", "grp5"] },
{ name: "name4", type: "Q", values:"frd" },
{ name: "name5", type: "G", values: ["grp1", "grp2"] },
{ name: "name6", type: "Q", values:"erer" }
];
const result = currentList.map(el => {
if (!Array.isArray(el.values) || el.type !== 'G') return el;
return {...el, values: el.values.map(v => v.replace('grp', ''))};
});
console.log(result);
uj5u.com熱心網友回復:
你可以這樣做:
const grpList = [
{ name: "grp1", id: "1" },
{ name: "grp2", id: "2" },
{ name: "grp3", id: "3" },
{ name: "grp4", id: "4" },
{ name: "grp5", id: "5" },
{ name: "grp6", id: "6" }
];
const currentList = [
{ name: "name1", type: "G", values: ["grp1", "grp3"] },
{ name: "name2", type: "Q", values:"abcd" },
{ name: "name3", type: "G", values: ["grp1", "grp5"] },
{ name: "name4", type: "Q", values:"frd" },
{ name: "name5", type: "G", values: ["grp1", "grp2"] },
{ name: "name6", type: "Q", values:"erer" }
]
const newList = currentList.map(item => {
if (item.type == 'Q') return item;
const values = item.values.map(value => {
const grpItem = grpList.find(grp => grp.name == value);
return grpItem.id;
})
return {...item, values}
});
console.log(newList)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/381382.html
標籤:javascript 数组
