Задать вопрос
Ответы пользователя по тегу JavaScript
  • Почему .find в mongoose возвращает не массив?

    @FIREguardSPB
    Я мимоходом второпях ерунду написал, поэтому редактирую:

    У тебя не может быть свойства lenght - потому, что такого нет в природе =)) правильно - length
    Это частая ошибка у новичков!
    Ответ написан
    Комментировать
  • Как вывести элементы массива?

    @FIREguardSPB
    Можете использовать эту функцию для вывода массива с значениями указанного поля.
    По идее должно работать с любой вложенностью (многомерностью).
    obj - массив или объект в котором нужно найти значения
    fieldName - название поля в строковом формате значения которого нужно собрать
    пример запуска
    console.log(picker(arr, 'name'))
    Вывод для массива представленного автором будем таким -
    [ 'Petya', 'Ira', 'Andriy' ]

    const picker = (obj, fieldName) => {
      const result = []
      const collectItems = (obj, fieldName) => {
        if ((typeof obj !== 'object') && (!Array.isArray(obj))) {
          return result
        }
        if (Array.isArray(obj)) {
          obj.forEach(el => {
            collectItems(el, fieldName)
          })
        }
        if ((typeof obj === 'object') && (!Array.isArray(obj))) {
          for (let key in obj) {
            if (key === fieldName) {
              result.push(obj[key])
            }
            if ((typeof obj[key] === 'object') || (Array.isArray(obj[key]))) {
              collectItems(obj[key], fieldName)
            }
          }
        }
      }
      collectItems(obj, fieldName)
      return result
    }
    Ответ написан
    Комментировать
  • Как передать параметр в экспортированную функцию?

    @FIREguardSPB
    Вот так должно быть по идее, чтобы работало (и оно работает - проверено)
    const setValues = require('./index')
    async function fun(){
    let array = []
    array.push(1)
    //some code
    await setValues(array)
    }
    Ответ написан
    Комментировать
  • Как распознавать объект в режиме реального времени с использованием захвата окна?

    @FIREguardSPB
    У меня тупая идея =) Конвертировать нужное изображение и образец в svg и соответственно в исходном найти часть кода образца.
    Ответ написан
  • Как разбить массив на равные части?

    @FIREguardSPB
    Можно рекурсией. Вот функция:
    const arraySplitter = (arr, qtyItems) => {
        let countItems = 0
        const lengthArr = arr.length
        const resultArr = []
        const splitter = (arr) => {
            if (countItems >= lengthArr) {
              return
              }
            resultArr.push(arr.slice(countItems, countItems + qtyItems))
            countItems = countItems + qtyItems
            splitter(arr)
             }
           splitter(arr)
           return resultArr
         }


    arr - массив который нужно разбить
    qtyItems - количество элементов в подмассивах нового массива.

    Если циклом
    const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 
    
    const array_size = 3;
    
    const sliced_array = [];
    
    for (let i = 0; i <array.length; i += array_size) {
        sliced_array.push(array.slice(i, i + array_size));
    }
    Ответ написан
    Комментировать
  • Не могу никак понять, как перебрать массив с помощью цикла методом includes?

    @FIREguardSPB
    let array = ["Привет!", "Здорово, коль не шутишь!", "Я принесла тебе утренний чай.Обычно ты еще спишь.", "Вы приносите мне чай по утрам?", "А ты как думаешь, откуда он берётся?", "Не знаю. Я думал, это само собой разумеющееся."];
    let searchWord = 'чай';
    for (let i = 0; i < array.length; i++){
      if (array[i].includes(searchWord)){
        console.log(array[i])
      }
    }

    Тоже самое, но методом forEach
    array.forEach((msg) => {
      if (msg.includes(searchWord)) {
        console.log(msg)
      }
    })
    Ответ написан
    1 комментарий