@judywb

Почему sum увеличивается только 1 раз?

код
ids = [1, 2]
let sum = 0
for (let i = 0; i < items.length; i++){
    console.log(items[i].id)
    console.log(ids)
    if(items[i].id in ids) {
        sum = sum + items[i].cost
     }
}
 console.log(sum)

Массив айтемов
items = [
  {
    _id: new ObjectId("621e537dfbe016ca8e92f35e"),
    id: 1,
    social: 'VK',
    service: 'repos',
    isAlive: false,
    speed: 'fast',
    cost: 3.5,
    accLeft: 0
  },
  {
    _id: new ObjectId("621e5396fbe016ca8e92f35f"),
    id: 2,
    social: 'INST',
    service: 'repos',
    isAlive: false,
    speed: 'fast',
    cost: 5.5,
    accLeft: 0
  },
 {
    _id: new ObjectId("621e5396fbe016ca8e92f35f"),
    id: 3,
    social: 'INST',
    service: 'repos',
    isAlive: false,
    speed: 'fast',
    cost: 5.5,
    accLeft: 0
  }
]

sum увеличивается только на первый раз(на первое совпадение), почему так? Как исправить?
  • Вопрос задан
  • 131 просмотр
Решения вопроса 2
nochkin
@nochkin
Оператор "in" не для этой цели. Надо использовать "includes":
if(ids.includes(items[i].id)) {
}
Ответ написан
Комментировать
@defriz
люблю js
if(ids.find(x => x == items[i].id)) {
    sum += items[i].cost;
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы