我想每次对匹配的Car和Model求和,但不使用此代码:
function solve(arr) {
let map = new Map();
for (let str of arr) {
let [car, model, price] = str.split(' | ');
if(!map.has(car)){
map.set(car, new Map());
}
if(map.get(car).get(model)){
map.get(car).get(model += Number(price))
}
else{
map.get(car).set(model, Number(price));
}
}
}
solve(['Mini | Clubman | 20000',
'Mini | Clubman | 43434343',
'Mini | Clubman | 1000',
'Mercedes-Benz | 60PS | 3000',
'Hyunday | Elantra GT | 20000',
'Mini | Countryman | 100',
'Mercedes-Benz | W210 | 100',
'Mercedes-Benz | W163 | 200']);
答案 0 :(得分:1)
您似乎正在寻找
function solve(arr){
const map = new Map();
for (const str of arr) {
const [car, model, price] = str.split(' | ');
if (!map.has(car)) {
map.set(car, new Map());
}
if (!map.get(car).has(model)) {
map.get(car).set(model, 0);
}
map.get(car).set(model, map.get(car).get(model) + Number(price));
}
}
您不能将+=
与Map
条目一起使用。