BombNumbers 60 points help
https://pastebin.com/67bYmq7X
https://pastebin.com/67bYmq7X
Използвате reduce без първоначална стойност, което ще гърмне, ако масива е празен.
Може да го тествате с тези входни данни:
bombNumbers( [], [4, 2]);
Променете ред №26 от:
let result = arr1.reduce((a, b) => a + b);
На:
let result = arr1.reduce((a, b) => a + b, 0);
Според мен, използваната логика е по-сложна и дълга от нужното.
Аз бих я решил така:
function bombNumbers(numbers, [bomb, blast]) {
let bombIndex;
while ((bombIndex = numbers.findIndex(n => n === bomb)) !== -1) {
const startIndex = Math.max(bombIndex - blast, 0);
const endIndex = Math.min(bombIndex + blast, numbers.length - 1);
const count = 1 + endIndex - startIndex;
numbers.splice(startIndex, count);
}
const result = numbers.reduce((a, b) => a + b, 0);
console.log(result);
}
Благодаря ти Мартин!