Я хочу каждый раз суммировать соответствие автомобиля и модели, но не работаю с этим кодом:
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']);
@Jerodev, похоже, находится внизу примера кода. Из-за форматирования было трудно разглядеть. Исправлено форматирование.
.get(model += Number(price)) не имеет смысла. Вы имели ввиду .set(model, ….get(model) + Number(price))?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы, кажется, ищете
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.
Рад, что помог! Вы можете захотеть проголосовать за и / или принять ответ
Не могли бы вы привести пример введенных вами данных и ожидаемого результата?