Задать вопрос
Местоположение
Россия, Санкт-Петербург и область, Санкт-Петербург

Достижения

Все достижения (5)

Наибольший вклад в теги

Все теги (32)

Лучшие ответы пользователя

Все ответы (34)
  • Как вывести значение ключа объекта?

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

    const f = (arr, limit) => {
    	let time = 0
    	return arr.reduce((acc, next) => {
    		if ((time + next.time) <= limit) {
        	acc.push(next)
            time += next.time
        }
      
        return acc
      }, [])
    }
    
    console.log(f(Sigthts, 30))
    Ответ написан
    Комментировать
  • Как вставить svg как background?

    Zhuroff
    @Zhuroff Автор вопроса
    Разобрался, проблема была действительно в самом svg-файле. Нужно, чтобы внутри было
    xlink:href="data:image/png;

    а у меня было:

    xlink:href="data:img/png;
    Ответ написан
    Комментировать
  • Как решить задачу с двумя массивами JS?

    Можно вот так. Тогда вообще по фигу, сколько массивов и какая у них длина

    const sum = (...args) => (
        args.flat().reduce((acc, next) => acc += next, 0)
    )


    Подробнее:
    Стрелочные функции
    rest-параметры
    ES6 reduce
    ES6 flat

    Если все же нужно "олдовым" способом (и если точно всегда оба массива равной длины), то, как вам и написали, две проверки излишни.

    function sum(a1, a2) {
      let result = 0
      
      for (let i = 0; i < a1.length; i++) {
        result += a1[i] + a2[i]
      }
      
      return result
    }
    Ответ написан
    2 комментария

Лучшие вопросы пользователя

Все вопросы (142)