如何在地图上更改价值?

时间:2018-10-12 14:04:26

标签: javascript

我想每次对匹配的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']);

1 个答案:

答案 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条目一起使用。