Вывести куда? В вашем примере не прописан сам вывод.
Также коллбэк в 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 }));