Этот вопрос закрыт для ответов, так как повторяет вопрос Как вывести значение ключа объекта?

Как вывести значение ключа объекта?

Нужно вывести номера телефонов баланс которых меньше 2000$. Пробовал перебрать в объекте каждый баланс через forEach ничего не выходит.
function findBalance (array) {
    array.forEach((this.balance) => this.balance.startsWith("$1"))
}

  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
Вывести куда? В вашем примере не прописан сам вывод.
Также коллбэк в forEach некорректно построен, вы пытаетесь передать в качестве аргумента некий this.balance. Но в функцию вообще нельзя передать аргумент в таком виде. У forEach есть конкретная сигнатура
array.forEach((element, index, array) => {}) // 2 и 3 необязательные

Поэтому, по сути, должно выглядеть хотя бы так
array.forEach((element) => element.balance.startsWith("$1") && console.log(element.balance))


Также можно деструктурировать, вытащив стразу свойство balance через фигурные скобки:
array.forEach(({ balance }) => balance.startsWith("$1") && console.log(balance))


Если же вам нужно получить именно отфильтрованный массив, состоящий из юзеров, чей баланс меньше 2k, то вместо forEach нужно использовать filter, возвращая результат его работы:
function findBalance (array) {
  return array.filter(({ balance }) => balance.startsWith("$1"))
}
console.log(findBalance(users))


А вообще хранить числа (в т.ч. денежные суммы) в виде строк - это чрезвычайно плохая идея. Лучше распилить свойство balance на два других свойства:
// Вместо
{ balance: "$1,000.57" }

// Сделать так
{
  balanceAmount: 1000.57,
  balanceCurrency: '$'
}

// Или так
{
  balance: {
    amount: 1000.57,
    currency: '$'
  }
}


Так хотя бы можно какие-то арифметические операции производить с этими числами. А вывести в нужном национальном формате число всегда можно, использовав toLocaleString()

const balance = {
   amount: 1768.67,
   currency: '$'
}
console.log(`${balance.currency}${balance.amount.toLocaleString('en-EN')}`);


А совсем уж по уму будет вот так:
const balance = {
  amount: 1768.67,
  currency: 'USD'
}
console.log(balance.amount.toLocaleString('en-EN', { style: 'currency', currency: balance.currency }));
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы