Как сделать так чтобы два числа начинающиеся на 2 складывались между собой?

Возьмите из этого массива те элементы, у которых первая цифра 1 или 2, и найдите их сумму.

let arr = [10, 23, 30, 40, 21, 32, 51];
let num1, num2
for(let i=0; i<=arr.length-1;i++){
  let num = String(arr[i]) //переделали массив в строку
    let char= num[0] //присвоили первый символ переделанного массива в строку в переменную
    if(char==1){
        num1=Number(num)
        document.write(num1)
    }
    if (char==2){
        num2=Number(num)
        document.write(num2)
    }
}

Вопрос: Как сделать так чтобы два числа начинающиеся на 2 складывались между собой?


Ответы (2 шт):

Автор решения: MBo

Ну часть работы вы уже сделали. Только num1 и num2 вам не нужны, ведь сразу после успешного сравнения вы можете добавить arr[i] к сумме

let arr = [10, 23, 30, 40, 21, 32, 51];
let summ = 0
for(let i=0; i<=arr.length-1;i++){
    let num = String(arr[i]) //переделали массив в строку
    let char= num[0] //присвоили первый символ переделанного массива в строку в переменную
    if(char=="1" || char=="2"){
        summ += arr[i]
    }
}
document.write(summ)

→ Ссылка
Автор решения: Rudi

Можно что-то такое сделать..

let arr = [10, 11, 30, 40, 21, 32, 51, 1, 2];
let sum = arr.filter(e=>{ return e >= 10 && e < 30 || e == 1 || e == 2 }).reduce((a,b)=>{return a + b});

console.log(sum);

let sum2 = 0;

for(let n of arr) if(n >= 10 && n < 30 || n == 1 || n == 2) sum2 += n;

console.log(sum2);

→ Ссылка