我有一個看起來像這樣的資料結構:
let a = [
["base-certificate", 60, 3, 2022],
["case-certificate", 1, 3, 2022],
["standard-certificate", 7, 3, 2022],
];
我想把它改成這樣:
[{x:[3, 2022], base: 60, case:1, standard: 7}]
我嘗試在陣列上使用 map 方法,例如:
let a = [
["base-certificate", 60, 3, 2022],
["case-certificate", 1, 3, 2022],
["standard-certificate", 7, 3, 2022],
];
let result = a.map((elem) => {
let obj = {};
elem.forEach((e, i) => {
obj["x"] = [e[2], e[3]];
obj[e[0]] = e[1];
});
return obj;
});
console.log(result);
上面的代碼沒有得到想要的輸出。最好的方法是什么?
uj5u.com熱心網友回復:
您不需要同時使用map和forEach,您可以洗掉外部地圖。
此外,如果您想洗掉“-certificate”部分,您可以使用split.
像這樣的東西應該作業
let a = [
["base-certificate", 60, 3, 2022],
["case-certificate", 1, 3, 2022],
["standard-certificate", 7, 3, 2022],
];
let obj = {};
a.forEach((e, i) => {
obj["x"] = [e[2], e[3]];
obj[e[0].split('-')[0]] = e[1];
});
console.log(obj);
uj5u.com熱心網友回復:
map()用于創建陣列。你只需要一個物件,你應該在回圈之外宣告它并使用forEach()它來填充它。你不需要嵌套回圈。
您可以使用從名稱replace()中洗掉。-certificate
let a = [
["base-certificate", 60, 3, 2022],
["case-certificate", 1, 3, 2022],
["standard-certificate", 7, 3, 2022],
];
let obj = {};
a.forEach((e, i) => {
obj["x"] = [e[2], e[3]];
obj[e[0].replace('-certificate', '')] = e[1];
});
console.log(obj);
uj5u.com熱心網友回復:
let a = [
["base-certificate", 60, 3, 2022],
["case-certificate", 1, 3, 2022],
["standard-certificate", 7, 3, 2022],
];
let obj = {};
a.forEach((e) => {
obj["x"] = [e[2], e[3]];
obj[e[0].replace('-certificate',"")] = e[1];
});
console.log([obj]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/494108.html
標籤:javascript 数组 目的
