Работа с массивом

Дан массив объектов. Вывести массив телефонных номеров пользователей, имеющих баланс более 2000 долларов. И найти сумму всех балансов пользователей

    let users = [
{
"index": 0,
"isActive": true,
"balance": "$2,226.60",
"name": "Eugenia Sawyer",
"gender": "female",
"phone": "+1 (840) 583-3207",
"address": "949 John Street, Rose, Puerto Rico, 1857"
},
{
"index": 1,
"isActive": true,
"balance": "$2,613.77",
"name": "Pauline Gallegos",
"gender": "female",
"phone": "+1 (985) 593-3328",
"address": "328 Greenpoint Avenue, Torboy, North Dakota, 6857"
},
{
"index": 2,
"isActive": false,
"balance": "$3,976.41",
"name": "Middleton Chaney",
"gender": "male",
"phone": "+1 (995) 591-2478",
"address": "807 Fleet Walk, Brutus, Arkansas, 9783"
},
{
"index": 3,
"isActive": true,
"balance": "$1,934.58",
"name": "Burns Poole",
"gender": "male",
"phone": "+1 (885) 559-3422",
"address": "730 Seba Avenue, Osage, Alabama, 6290"
},
{
"index": 4,
"isActive": true,
"balance": "$3,261.65",
"name": "Mcfadden Horne",
"gender": "male",
"phone": "+1 (942) 565-3988",
"address": "120 Scholes Street, Kirk, Michigan, 1018"
},
{
"index": 5,
"isActive": false,
"balance": "$1,790.56",
"name": "Suzette Lewis",
"gender": "female",
"phone": "+1 (837) 586-3283",
"address": "314 Dunne Place, Bawcomville, Guam, 9053"
}
]
 let sum = 0;
    for (let index = 0; index < users.length; index++) {
      const user = users[index];
      if(user.balance >2000) {
        sum += parseFloat(user.balance.replace(/[^0-9.]/g, ''));
        console.log(user.phone + " $" + user.balance);
      }
    }

    console.log("сумма первышающая $2000 тысячи = " + "$" + sum);

Не понимаю как доделать.(выводит 0)


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

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

Эту задачу можно решить вот таким способом:

const users = [{
    "index": 0,
    "isActive": true,
    "balance": "$2,226.60",
    "name": "Eugenia Sawyer",
    "gender": "female",
    "phone": "+1 (840) 583-3207",
    "address": "949 John Street, Rose, Puerto Rico, 1857"
  },
  {
    "index": 1,
    "isActive": true,
    "balance": "$2,613.77",
    "name": "Pauline Gallegos",
    "gender": "female",
    "phone": "+1 (985) 593-3328",
    "address": "328 Greenpoint Avenue, Torboy, North Dakota, 6857"
  },
  {
    "index": 2,
    "isActive": false,
    "balance": "$3,976.41",
    "name": "Middleton Chaney",
    "gender": "male",
    "phone": "+1 (995) 591-2478",
    "address": "807 Fleet Walk, Brutus, Arkansas, 9783"
  },
  {
    "index": 3,
    "isActive": true,
    "balance": "$1,934.58",
    "name": "Burns Poole",
    "gender": "male",
    "phone": "+1 (885) 559-3422",
    "address": "730 Seba Avenue, Osage, Alabama, 6290"
  },
  {
    "index": 4,
    "isActive": true,
    "balance": "$3,261.65",
    "name": "Mcfadden Horne",
    "gender": "male",
    "phone": "+1 (942) 565-3988",
    "address": "120 Scholes Street, Kirk, Michigan, 1018"
  },
  {
    "index": 5,
    "isActive": false,
    "balance": "$1,790.56",
    "name": "Suzette Lewis",
    "gender": "female",
    "phone": "+1 (837) 586-3283",
    "address": "314 Dunne Place, Bawcomville, Guam, 9053"
  }
]


function usersCheck(users) {
  let usersMax2000 = [];

  for (let user of users) {
    let tmp = +user["balance"].replace(/[^0-9.]/g, '');
    if (tmp > 2000) {
      usersMax2000.push(user);
    }
  }
  return usersMax2000;
}


function usersBalanceSumm(users) {
  let sum = 0;

  for (let user of users) {
    let tmp = +user["balance"].replace(/[^0-9.]/g, '');
    sum += tmp * 100;
  }
  return sum / 100;
}


let usersResult = usersCheck(users);

console.log('Пользователи у которых баланс больше $2000');
for (user of usersResult) {
  console.log(user['name']);
}


console.log(`Общая сумма балансов пользователей у которых баланс больше $2000: ${usersBalanceSumm(usersResult)}`);

console.log(`Общая сумма балансов пользователей: ${usersBalanceSumm(users)}`);

→ Ссылка