Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

SeventimeSsS

  • 0
    вклад
  • 17
    вопросов
  • 0
    ответов
  • 0%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Почему indexOf возвращает первый элемент массива?

    Smirator @Smirator
    Вчера разбирался с похожим функционалом.
    Мой вопрос тут: https://qna.habr.com/q/1244998
    Ответ написан 25 янв.
    Комментировать
    Комментировать
  • Почему indexOf возвращает первый элемент массива?

    alexalexes @alexalexes
    finalRes у вас типа целого числа в данной ситуации. У него не будет метода indexOf. Нужен финт ушами, чтобы принудительно преобразовать его в строку:
    let finalRes = item.number + "";
    PS: Ставите ; в строках JS, игнорирование их может сыграть злую шутку.
    Ответ написан 25 янв.
    5 комментариев
    5 комментариев
  • Как добавить элементам массива свойства в зависимости от условия?

    StiflerProger @StiflerProger
    const arr = [
      { name: "А" },
      { code: 1, name: "Адыгея, Респ.", capital: "Майкоп" },
      { code: 104, name: "Азербайджан", capital: "" },
      { name: "Б" },
      { code: 2, name: "Башкортостан, Респ.", capital: "Уфа" },
      { code: 3, name: "Таганрог", capital: "" },
      { code: 5, name: "Сочи", capital: "" },
      { code: 105, name: "Беларусь", capital: "" },
      { name: "В" },
      { code: 33, name: "Владимирская обл.", capital: "Владимир" },
      { code: 34, name: "Волгоградская обл.", capital: "Волгоград" },
      { code: 35, name: "Вологодская обл.", capital: "Вологда" }
    ];
    
    for (let i = 0; i < arr.length; i++) {
      if (!arr[i].code) continue;
    
      if (!arr[i - 1].code) {
        arr[i].position = "top";
      } else if (i + 1 === arr.length || !arr[i + 1].code) {
        arr[i].position = "bottom";
      } else {
        arr[i].position = "center";
      }
    }
    
    console.log(arr);
    Ответ написан 19 янв.
    Комментировать
    Комментировать
  • Как добавить элементам массива свойства в зависимости от условия?

    Grish Poghosyan @justmavi
    Software Development Engineer at Softconstruct
    const filteredArray = array.map((item) => {
      if (condition1) position = 'value1';
      else if (condition2) position = 'value2';
      // ...
     
      return item;
    }
    Ответ написан 19 янв.
    Комментировать
    Комментировать
  • Как перебрать массив с элементами и при отличии первой буквы элемента с первой буквой следующего элемента добавлять эту букву перед элементом?

    0xD34F
    0xD34F @0xD34F Куратор тега JavaScript
    arr.reduce((acc, n, i, a) => (
      a[i - 1]?.name[0] !== n.name[0] && acc.push({ name: n.name[0] }),
      acc.push(n),
      acc
    ), [])
    Ответ написан 18 янв.
    Комментировать
    Комментировать
  • Приходит массив с большим количеством объектов которые часто повторяются, как выводить только уникальные объекты?

    AHMED_RAPIRA @AHMED_RAPIRA
    const uniqueItems = (array) => {
      const blacklist = {};
    
      return array.filter((item) => {
        const blacklistKey = JSON.stringify(item);
    
        if (!blacklist[blacklistKey]) {
          blacklist[blacklistKey] = true;
    
          return false;
        }
    
        return true;
      });
    };
    Ответ написан 20 дек. 2022
    Комментировать
    Комментировать
  • Приходит массив с большим количеством объектов которые часто повторяются, как выводить только уникальные объекты?

    victormayorov
    Виктор Майоров @victormayorov
    Middle frontend dev.
    1 вариант
    [...new Map(arr.map((item) => [item["key"], item])).values()]


    2 вариант
    const uniqueIds = [];
    arr.filter(element => {
      const isDuplicate = uniqueIds.includes(element.key);
    
      if (!isDuplicate) {
        uniqueIds.push(element.key);
    
        return true;
      }
    
      return false;
    });


    3 вариант
    https://docs-lodash.com/v4/uniq-by/

    4 вариант
    Object.values(
      arr.reduce( (c, e) => {
        if (!c[e.key]) c[e.key] = e;
        return c;
      }, {})
    );


    5 вариант
    const unique = (arr, key) => {
       const keys = new Set();
       return arr.filter(el => !keys.has(el[key]) && keys.add(el[key]));
     };
    unique(arr, 'key')


    По каким полям нужно сравнивать, можешь допилить сам.
    Ответ написан 20 дек. 2022
    Комментировать
    Комментировать
  • Как вернуть из массива только те объекты, значения определённого свойства которых присутствуют в другом массиве?

    Rsa97
    Rsa97 @Rsa97
    Для правильного вопроса надо знать половину ответа
    filter
    includes
    Ответ написан 23 нояб. 2022
    Комментировать
    Комментировать
  • Как вернуть из массива только те объекты, значения определённого свойства которых присутствуют в другом массиве?

    cannibal_corpse
    Ilya Olovyannikov @cannibal_corpse
    Верстальщик руками
    const filteredValues = favoritePlaylist.filter(el => arr.includes(el.our_id));
    Ответ написан 23 нояб. 2022
    Комментировать
    Комментировать
  • Как при клике на input в телефоне не вызывать клавиатуру?

    psiklop @psiklop
    Я поставил input атрибут readonly
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как вывести VAST/VPAID рекламу?

    kspitfire
    Кирилл Алексеев @kspitfire
    Webdev: PHP (Symfony, Laravel), JS (Vue.js), Go.
    Очевидно, нужен плеер рекламных креативов на js. Его и нужно искать, вот навскидку.
    Ответ написан 31 окт. 2022
    Комментировать
    Комментировать
  • Как посчитать количество элементов в div?

    Kublyakov
    Кирилл @Kublyakov
    console.log($(".thumbs").children().length)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Функция в useEffect повторяется несколько раз, как завершить жизненный цикл?

    0xD34F
    0xD34F @0xD34F Куратор тега React
    срабатывает дважды, а в последующие разы увеличивается в разы

    Всё правильно, получаете то поведение, какое описали, новое значение focus - новый обработчик:

    useEffect(() => {
        window.addEventListener('keydown', onKeyPress);
    }, [focus])

    Старый-то вы не удаляете.

    А вообще, есть способ получать актуальное значение focus без создания нового обработчика, так что вам и одного хватит:

    useEffect(() => {
      const onKeyDown = ({ keyCode }) => {
        if (keyCode === 39) {
          setFocus(focus => focus + 1);
        }
      };
    
      window.addEventListener('keydown', onKeyDown);
      return () => window.removeEventListener('keydown', onKeyDown);
    }, []);
    Ответ написан 17 окт. 2022
    1 комментарий
    1 комментарий
  • Как получить id элемента?

    historydev @HistoryART Куратор тега JavaScript
    Играюсь с железками
    <img src={star} alt="star" onClick={() => addFavoriteChanel(index)} id={index} className={`star ${favorite <b>=== index</b>  ? 'active' : ''}`} />

    const [favorite, setFavorite] = useState(0);
    
    const addFavoriteChanel = (index) => {
            if(favorite === index) { 
                setFavorite(0);
            } else {
                setFavorite(index)
           }
        }
    Ответ написан 06 окт. 2022
    2 комментария
    2 комментария
Оценили как «Нравится»
Самые активные сегодня
  • solidcreature
    Николай Миронов
    • 10 ответов
    • 0 вопросов
  • mayton2019
    • 7 ответов
    • 0 вопросов
  • Mike_Ro
    Михаил Р.
    • 7 ответов
    • 0 вопросов
  • rPman
    • 6 ответов
    • 0 вопросов
  • Griboks
    Griboks
    • 5 ответов
    • 0 вопросов
  • Drno
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации