Задачи На Собеседовании Junior / Middle Frontend Developer. Массивы в JavaScript.

Поделиться
HTML-код
  • Опубликовано: 21 ноя 2024

Комментарии • 189

  • @wisejs
    @wisejs  2 года назад +15

    Домашнее задание: Найти дубликаты (повторяющиеся элементы) в массиве. Решение присылайте в комментарии 👇

    • @imthebest8000
      @imthebest8000 2 года назад +1

      uniqueNumbers = new Set(array)

    • @9mikaela
      @9mikaela 2 года назад +1

      @@imthebest8000 это не найдёт дубликаты

    • @imthebest8000
      @imthebest8000 2 года назад +1

      @@9mikaela да, я просто не правильно прочёл задание

    • @eugenedoroshenko7366
      @eugenedoroshenko7366 2 года назад

      Для числового массива: arrayWithDublicates.sort((x1, x2) => x1 - x2).reduce((acc, next, index, arr) => next === arr[index + 1] ? [...acc, next] : acc, []). Для других типов данных меняем сортировку, которая была подробно рассмотрена в ролике👆

    • @ArtyomSamsonchik
      @ArtyomSamsonchik 2 года назад +2

      array.filter( (el, i) => i !== array.lastIndexOf(el) )

  • @dmitriystoyanov933
    @dmitriystoyanov933 2 года назад +26

    Сейчас готовлюсь к собесам на новую работу, ставил на паузу и решил всё, НО некоторые твои варианты взорвали мозг) реально круто!

    • @Yupitrer
      @Yupitrer Год назад

      Как новая работа?

    • @dmitriystoyanov933
      @dmitriystoyanov933 Год назад +2

      @@Yupitrerда жестко бывает т.к. компания небольшая и должность размыта.. я типа фронтенд, но так же и бекенд писать приходится, и на AWS колупаться постоянно.. такое..но, бабки платят и хорошо;)

    • @adamarturov6361
      @adamarturov6361 Год назад

      Какие задачи по алгоритмам пригодились для собеса
      ?

    • @dmitriystoyanov933
      @dmitriystoyanov933 Год назад

      @@adamarturov6361 это год назад уже было, не помню, но может быть что угодно из них.

  • @АлинаЧередниченко-п9ъ

    Как раз прохожу собесы сейчас. То, что нужно как раз👌 . Спасибо 😉

  • @mxrquez7692
    @mxrquez7692 2 года назад +16

    Для разворачивания массива можно воспользоваться методом массива reduceRight, который работает как обычный, но итерируется с конца массива
    const reversedArray = array.reduceRight((accum, elem) => {
    accum.push(elem);
    return accum;
    }, []);

    • @SuperPirks
      @SuperPirks 2 года назад +3

      array.reduceRight((acc, item) => {
      return [
      ...acc, item
      ]
      },
      [])
      Пушить в аккумулятор плохая практика

    • @BOCbMOU
      @BOCbMOU 2 года назад +3

      @@SuperPirks в каком месте это плохая практика? Вот клонировать массив на каждой итерации - это действительно плохая практика.

    • @vjachet
      @vjachet Год назад

      ​@@SuperPirks лучше acc.concat(item)

  • @valeriathor1597
    @valeriathor1597 Год назад +2

    12:00: вторым аргументом назначаем this = наш array. первым аргументом, т.е. в качестве вызываемого колбэка передаем метод массива pop(), который внутри обращается к this т.е. к массиву, у которого вызывается. если я правильно поняла, когда что-то передается в качестве аргумента оно теряет контекст, потому что это вроде как эквивалентно присвоению переменной. поэтому нам нужно передать контекст вторым аргументом

  • @GrandAlexandr
    @GrandAlexandr 2 года назад +3

    благодарю за момент с сортировкой, на прошлом собесе не смог внятно ответить, а тут вот оно как))

  • @volshebniyfonar
    @volshebniyfonar Год назад +7

    Перевернуть массив можно и нужно за O(n) и без доппамяти.
    Нужно в цикле от 0 до length/2 менять местами i-ый элемент с length - 1 - i

  • @romanpohribniak8471
    @romanpohribniak8471 2 года назад +7

    Спасибо,Максим,что продолжаете радовать нас отличным контентом,очень крутое видео!

  • @konstantin-lysenko
    @konstantin-lysenko 2 года назад +2

    Дружище, ты просто машина, я бы сказал - живой калькулятор)
    Подписка и лайк однозначно!

  • @slapiinf518
    @slapiinf518 2 года назад +3

    Классный видосик. Гоу теперь про объекты :)

  • @РоманКлимов-с2и
    @РоманКлимов-с2и 2 года назад +9

    Делюсь опытом, была задача на собеседовании написать функцию для проверки слова на палиндром, там работа и с массивом, и с строкой. Кто не знает, что это такое и как ее решать, советую глянуть.

    • @zizu2499
      @zizu2499 Год назад

      А где найти видео не смог найти видео с решением задачи

    • @ЕвгенийРовенский-р6и
      @ЕвгенийРовенский-р6и Год назад

      А чего там решать? Слово в массив, массив развернуть и склеить в слово, результат сравнить с первоначальный словом. Можно с циклом заморочится или рекурсией. Для зарядки ума.

  • @senyashtyak
    @senyashtyak Год назад +1

    Найти максимальный элемент массива через сортировку это гениально

    • @LuNa-om8ci
      @LuNa-om8ci 9 месяцев назад

      Это был сарказм? Просто я новичок и немогу пока точно понять хорошо это или плохо.

    • @senyashtyak
      @senyashtyak 8 месяцев назад

      @@LuNa-om8ci объясню проще: вместо линейной сложности мы используем квадратичную

  • @Max_Ineos
    @Max_Ineos Год назад +4

    Решение второй задачи, зачем мудрить?))
    const max = Math.max(...array);
    const min = Math.min(...array);

  • @mykhailostepanishchev6472
    @mykhailostepanishchev6472 2 года назад +1

    Классный выпуск,большое спасибо! js, reduce, map, filter, sort, pop.

    • @wisejs
      @wisejs  2 года назад +2

      Спасибо за ключевые слова!

  • @kitaimanit6000
    @kitaimanit6000 2 года назад +1

    спасибо, контент огонь

  • @lambdius
    @lambdius 2 года назад +1

    В версиях node до 12, можно обмануть систему, т.к. сорт на малых объемах массива использует сортировку слиянием, мы можем произвести следующиее, a.sort(e=>1), еденицу можно заменить на любое положительное число, оно будет выполнять роль положительного резульятата сравнения элементов слева на право. Если уж идти по тропе шизокода, стоит писать все в круглых скобках, дабы избавиться от ключевых слов, методы вызывать следующим образом - a=[3,4,5,1,2,6], [j,o,i,n]=`join`, eval(a[j+o+i+n]`+`) и многое другое )))))
    И решение - a.map(a.pop,[...a]), взято из задачи 3 kyu на CW )))))
    У тебя хороший контент по технологиям, но задачки, это совсем другое, все тонкости JS врядли выйдет разобрать, да это и не нужно обычным людям.
    Ставлю этому видику 7kyu ))))

    • @wisejs
      @wisejs  2 года назад

      Интересно 🧐

    • @lambdius
      @lambdius 2 года назад

      @@wisejs Если человек хочет впечатлить собеседующего, рекомендую провести тутор - как писать код столбиком, по 1 символу в строке ))))

    • @wisejs
      @wisejs  2 года назад

      @@lambdius 😂

  • @Друг-ъ9о
    @Друг-ъ9о 2 года назад +6

    Класс! Сделай еще задачки с циклами))

    • @wisejs
      @wisejs  2 года назад +2

      Хорошая идея)

  • @yuriiyurii6656
    @yuriiyurii6656 2 года назад

    map(callbackFn, thisArg)
    Array(array.length).fill(null).map([].pop, [...array]);
    де:
    Array(array.length).fill(null) - масив будь-яких значень аналогічної довжини
    [].pop - потрібна сама функція
    [...array] - масив, з якого на кожному кроці буде забиратися останнє значення. Якщо без ... (деструктиризації), тоді очистить попередній масив array

    • @vjachet
      @vjachet Год назад +2

      array.map([].pop, [...array])

  • @assetdev1859
    @assetdev1859 2 года назад

    ты крутой! я подписался) нажал лайк, надеюсь у вас будут выходить такие позновательные видео

  • @samolevich
    @samolevich 2 года назад

    Классное видео. Интересные примеры. Спасибо

  • @max_mgtow
    @max_mgtow 2 года назад +2

    Привет ✌️
    Спасибо 🔥👍

  • @theoty-js
    @theoty-js 2 года назад +1

    👌 буду решать

  • @denmccormik7654
    @denmccormik7654 2 года назад +1

    Дз: создать объект где ключом будут значения элементов массива, а значением - количество их повторений и в зависимости от задачи перебрать объект.

    • @wisejs
      @wisejs  2 года назад +1

      Все так, но вместо объекта лучше Map 😆

  • @andreykrav3274
    @andreykrav3274 2 года назад

    it's most popular information! thanks

  • @notIdeal78
    @notIdeal78 10 месяцев назад

    09:50
    const arrow = [1,2,3,4,5,6,7,9,12]
    console.log(arrow.sort(() => {return -1}));
    тоже идеально будет работать

    • @klash1401
      @klash1401 9 месяцев назад

      отлично решение, вот его упрощенная запись (без return и фигурных скобок):
      arrow.sort(() => -1)

  • @loadmore
    @loadmore 2 года назад +1

    Обычно в продакшене готовые апи юзаешь, Бек уже все отфильтровал )

  • @АлексейФиленко-ф4к
    @АлексейФиленко-ф4к 2 года назад

    Привет, найти самое редковстречающееся значение в числовом массиве, или сгенерировать n массив, заполненный рандомными числами от min до max)

    • @wisejs
      @wisejs  2 года назад +1

      Тоже попадалось с рандомными числами

  • @JohnDoe-hw1sm
    @JohnDoe-hw1sm 2 года назад +1

    Касательно варианта с разворотом массива, можно еще воспользоваться reduceRight. =)
    arr.reduceRight((p, c) => [...p, c], []);

  • @oleed8516
    @oleed8516 2 месяца назад

    С filter() не надо приводить к boolean через "!!", движок сам это сделает.

  • @haibova_irisha
    @haibova_irisha Год назад

    привет . спасибо за видео

  • @robbyandreasian
    @robbyandreasian Год назад

    Полезно ! спасибо !

  • @Veremey
    @Veremey 2 года назад

    Great job 🔥 Keep on going!

  • @BobbyBob21
    @BobbyBob21 9 месяцев назад +1

    За eval по рукам надо бить))

  • @velikorossnationalist4259
    @velikorossnationalist4259 2 года назад +2

    В предпоследней задаче можно было бы воспользоваться методом sort:
    const arr = [1, 2, 3, 4, 5, 6, 88];
    const reversed = arr.sort((a, b) => {
    return b - a;
    });
    console.log(reversed);

    • @PlaymoreDev
      @PlaymoreDev 2 года назад +4

      не можно, потому что задача развернуть а не отсортировать. вот с таким массивом не будет работать верно: const arr = [1, 22, 3, 4, 5, 6, 88]

  • @dmaberlin
    @dmaberlin 2 года назад

    спасибо , продолжай!

  • @КостянЕрмаков-е9ю
    @КостянЕрмаков-е9ю 2 года назад +1

    Стало интересно и пошел разбираться. С некоторым успехом вроде что-то вышло.😁
    Для данной записи: [...ourArr].map(array.pop, ourArr)
    - array.pop - это мы просто передаем метод массива, аналогично и этой записи: [].pop
    Метод array.pop удаляет последний элемент массива и возвращает его.
    Второй агрумент "ourArr" для метода map нужен для того, чтобы именно было что возвращать в новый массив, который создает метод map. Значение для нового элемента массива возвращается на каждой итерации из ourArr, который мы передали для метода [].pop в качестве this.
    Новый массив [...ourArr] нужен только для того, чтобы было по чему нам итерироваться. Будет аналогично и работать так же для записи:
    [undefined, undefined, undefined, undefined, undefined].map(array.pop, ourArray)
    Кажется, что я только запутал.😂

    • @wisejs
      @wisejs  2 года назад +1

      Ход мыслей верный 🙂

    • @КостянЕрмаков-е9ю
      @КостянЕрмаков-е9ю 2 года назад

      @@wisejs Ну и хорошо значит.😁

    • @Kaorichvagon
      @Kaorichvagon 2 года назад +1

      Array.from( new Array(arr.length) , () => arr.pop() ) в пустой массив той же длины накидываются попнутые значения. Так это выглядит в читаемой реализации, хотя всё равно способ идиотский, так как происходит мутация исходного массива. Еще при этом зачем-то усложнил получением ссылки на метод массива и прокинутым в неё this. Любителей всё усложнять везде же любят)

    • @SerzhNesteruk
      @SerzhNesteruk 9 месяцев назад

      ​@@Kaorichvagon Здесь, кстати, тоже можно поумничать с Array.prototype.pop и thisArg, но хотя бы сохранив иммутабельность исходного массива:
      Array.from(arr, [].pop, [...arr])
      А учитывая, что вторым аргументом Array.from является mapFn, то можно просто использовать сам метод map:
      arr.map([].pop, [...arr])
      Но можно решить и рациональнее:
      arr.map((_, i, arr) => arr.at(~i))

  • @hyannikolas697
    @hyannikolas697 2 года назад

    Задача. Есть четыре массива по 4 цифры, цифры разбросаны, найти максимальное число , и вывести новый массив максимальных чисел.

    • @wisejs
      @wisejs  2 года назад

      Сводится к поиску максимального числа в матрице (насколько я понимаю)

  • @podpalmoi
    @podpalmoi 4 месяца назад

    Классное видео, благодарю автора за освежение памяти! Надеюсь вы живы. Говорят, в этом году всё кончится.

  • @firewatermoonsun
    @firewatermoonsun 4 месяца назад

    7:02 Как вы открыли увеличитель, которая типа лупы?

  • @pasha2927
    @pasha2927 2 года назад

    Домашнее задание: Можно использовать new Set... [...new Set(someArray)]

    • @wisejs
      @wisejs  2 года назад

      Не убрать их, а найти :)

  • @ArtcticUFO
    @ArtcticUFO 2 года назад

    Отличный видос)

  • @raff_m_d6971
    @raff_m_d6971 2 года назад

    От души

  • @mathiaswei8715
    @mathiaswei8715 2 года назад +1

    Спасибо, array.filter(item => item) тоже сработает

  • @СашаПолянский-х4ы
    @СашаПолянский-х4ы 10 месяцев назад

    лайк за localeCompare

  • @andrTaylor
    @andrTaylor 2 года назад +1

    Альтернатива для reverse)
    array.reduceRight((acc, item) => [...acc, item], [])
    Это когда лень писать for с обратным циклом))

    • @SerzhNesteruk
      @SerzhNesteruk 9 месяцев назад

      Спасибо, что поделились решением! Способ вполне работающий, но у него всё же квадратичная сложность по времени из-за пепесоздания массива на каждой итерации. Можно переписать примерно так: array.reduceRight((acc, item) => (acc.push(item), acc), [])
      ...или даже решить через map:
      array.map((_, i, arr) => arr.at(~i))

    • @andrTaylor
      @andrTaylor 9 месяцев назад +1

      @@SerzhNesteruk с первым вашим решением согласен, да, но второе читается сложновато)) заставляет залезть в доку и чекнуть инфу про тильду и at

  • @thecatwrites9731
    @thecatwrites9731 2 года назад

    прикольный канал, не помню откуда я тебя взял

  • @getshou
    @getshou 7 месяцев назад

    а почему, если не использовать деструктуризацию в выражении array.map(array.pop, array), вернет [6,6,5,4,,,] ?

  • @СлаваПачевський
    @СлаваПачевський 2 года назад +1

    Стосовно розвертання масиву через map(array.pop, array) функція видаляє останній елемент масиву і повертає його, який в свою чергу записується в результат функції map. А в якості this для метода pop передається array, який скорочується.

  • @granmini
    @granmini 2 года назад

    Есть еще функция Есть еще функция getMaxOfArray ([1, 2, 3])

  • @whiteguards43
    @whiteguards43 2 года назад

    не понял про array.filter(boolean) почему работает? Если весь массив передается, почему он возвращает все те что тру ведь boolean === true равно фолс

  • @Shperung
    @Shperung Год назад

    const max = arr.toSorted((a, b) => b - a)[0];

  • @DreamingDolphing
    @DreamingDolphing 4 месяца назад

    Смотрящим через 2 года: нет, настолько простые задачи вас на собеседовании решать не попросят.

  • @kirushaa
    @kirushaa 2 года назад

    Привет ) Скажи пожалуйста что за шрифт у тебя в web-storm ? Заранее спасибо )

  • @b1sh855
    @b1sh855 Год назад

    const arrey = [1, 2, 3, 4]
    const xw = arrey.reduce((x, y) => x + y);
    console.log(xw)
    это по короче

  • @asifabbasov3801
    @asifabbasov3801 Год назад

    Можно больше задач по JS c собеседований

  • @ИмяФамилия-ш2г9ь
    @ИмяФамилия-ш2г9ь 5 месяцев назад

    eval это прикол конечно, думаю лучше так не делать на собеседовании 😅

    • @oleed8516
      @oleed8516 2 месяца назад

      Почему? Это самый краткий и самый понятный способ.

  • @lolphdundgren4328
    @lolphdundgren4328 Год назад

    8:38 ошибка в строке 23, в if-е должен стоять ===.

  • @kittycat5403
    @kittycat5403 2 года назад +1

    а разве нельзя развернуть массив тем же методом sort, только возвращать x2 - x1 вместо x1 - x2?

    • @kittycat5403
      @kittycat5403 2 года назад +1

      и в filter просто использовать сам текущий item без boolean

    • @wisejs
      @wisejs  2 года назад

      x2 - x1 - отсортирует по убыванию

    • @wisejs
      @wisejs  2 года назад

      да, так можно, но не особо очевидно как по мне

    • @ИмяФамилия-э4ф7в
      @ИмяФамилия-э4ф7в Год назад

      Нет, нельзя. Если массив изначально не сортирован, то такой "разворот" вернёт сортированный.

  • @oldiBerezkoo
    @oldiBerezkoo 10 месяцев назад

    3:11 через sort было бы легче и быстрее сделать как мне кажется

  • @Witcher-simple-YouTube
    @Witcher-simple-YouTube Год назад

    Это websrorm ?

  • @senyashtyak
    @senyashtyak Год назад

    Никто не пишет вручную алгоритмы, вместо этого используют lodash, в котором они реализованы

  • @ЮраГорячев-ю5ъ
    @ЮраГорячев-ю5ъ Год назад

    В последней задаче зачем в иф делать !! если все что в условии и так приведется в бул значение

  • @azizoid
    @azizoid 2 года назад +1

    просили найти второе и третье максимальное значение массива перебрав его всего один раз

    • @wisejs
      @wisejs  2 года назад

      Как решали? Сортировкой?

    • @azizoid
      @azizoid 2 года назад

      @@wisejs сортировкой делать было нельзя. Поэтому прошелся обычным for-ом. Но и это их не устроило. Сказали мой алгоритм слишком затратный. Это было тюлет 3 назад

    • @wisejs
      @wisejs  2 года назад

      @@azizoid O(n2 если 2 раза перебирал. Хотели, наверное, быстрее.

    • @plart2006
      @plart2006 2 года назад

      @@wisejs простой сортировкой эту задачу не решить, потому что могут быть дубликаты, придется set еще городить, это не рационально
      upd: зато читабельно, и чаще всего на фронте глубоко пофиг, сколько займет операция с массивом - 3мс или 10мс, а вот разбираться с кодом из кучи циклов нахрен никому не упало

    • @plart2006
      @plart2006 2 года назад

      let max = -Infinity,
      second = -Infinity,
      third = -Infinity
      for (const value of arr) {
      if (value > max) {
      [second, max] = [max, value] // save previous max
      } else if (value < max && value > second) {
      second = value // new second biggest
      third = second // new third biggest
      } else if (value < second && value > third) {
      third = value // new third biggest
      }
      }
      return [second, third]

  • @GagikHarutyunyan_dev
    @GagikHarutyunyan_dev 2 года назад +2

    Последний пример мутирует предыдущий массив, это плохо)

    • @wisejs
      @wisejs  2 года назад

      Последний пример какой задачи?

    • @GagikHarutyunyan_dev
      @GagikHarutyunyan_dev 2 года назад

      Развернуть массив

    • @wisejs
      @wisejs  2 года назад

      не всегда плохо, зависит от требований

    • @vjachet
      @vjachet Год назад +1

      @@wisejs но сначала-то все примеры без мутации
      что мешало array.map([].pop, [...array]) ?
      если мутировать оригинальный массив - надо было и с двумя указателями дать пример

  • @phat80
    @phat80 5 месяцев назад

    Такой легкотни на собеседовании быть просто не может. Это даже не уровень джуна. Да, задачи тоже на массивы могут быть, но они будут куда сложнее и не такими очевидными, да еще и с особыми требованиями, типа сделать то-то, не используя что-то (например, какие-то стандартные методы) или не используя дополнительную память, либо показать алгоритм с заданной сложностью. В общем, такие задачи могут быть лишь на собеседовании в какой-то сказочной компании. А таковых давно не существует.

  • @ruslantsarenko3036
    @ruslantsarenko3036 2 года назад +2

    Сомнительно чтобы давали настолько простые задачи на собесе

    • @plart2006
      @plart2006 2 года назад +6

      Если просят крутить деревья, лучше сразу уйти. Потом такие особи крутят тебе мозги

    • @McNeelone
      @McNeelone 2 года назад

      @@plart2006 по подробней можно?

    • @KrivovNikolay
      @KrivovNikolay Год назад

      @@McNeelone я думаю он имел ввиду работу с DOM элементами , если сразу просят работать с ними ,то лучше сразу покинуть собеседование...
      Я так его понял

    • @Snezh88k
      @Snezh88k Год назад

      @@KrivovNikolay бинарные деревья поиска

    • @ИмяФамилия-э4ф7в
      @ИмяФамилия-э4ф7в Год назад

      @@plart2006 ну такой себе совет. Если ты умеешь крутить деревья, то почему бы и не покрутить? Если не умеешь, то да, можно сразу уходить: у тебя и у компании разные взгляды на то, что ты должен знать и уметь на той позиции, куда тебя собеседуют. И консенсус вряд-ли получится.

  • @Ochenopasniy
    @Ochenopasniy Год назад +5

    Почему ты таким устаревшим циклом пользуешься? И ещё вводишь в заблуждение новичков! А также тут многие пишут что таких задач нет на собесах! Зря потерянное время …

  • @YourHeIper
    @YourHeIper 3 месяца назад

    Все ок но почему "маС"? Разве Mathematics читается маСематикс? Ладно хоть не маЗ, но слушаете как произносится слово правильно а то вы говорите я не пойму что за маС

  • @kosmodemyan_sugar
    @kosmodemyan_sugar Год назад

    ну не знаю не знаю, мне и на джуна задачи сложнее попадались

  • @deantek
    @deantek 2 года назад

    а нельзя в максимальном или минимальном элементе массива сделать так?
    const arr = [3, 2, 4, 5, 1]
    const min = arr.sort()[0]
    const max = arr.sort()[arr.length - 1]

    • @ЭцукоМизуки
      @ЭцукоМизуки 2 года назад +1

      да кнчн

    • @timesyru
      @timesyru 2 года назад +2

      Если в массиве будет 100, то max у Вас будет равна 5, что будет ошибкой.

  • @dogfrogfog
    @dogfrogfog 2 года назад +1

    тернарным, а не тренарным

  • @ИвановАкакий
    @ИвановАкакий Год назад

    каким каким оператором? тренарным? 😂 может тернарным?

  • @oleksandr_h
    @oleksandr_h 2 года назад

    const A = [1, 2, 3, 4, 5, 2, 1];
    console.log([...new Set(A.filter((a) => A.length - A.filter((f) => f != a).length > 1))]);

  • @НурданАбдиев-м8м
    @НурданАбдиев-м8м 3 месяца назад

    Меня одного выворачивает, когда люди пытаются произнести английские слова как носители в русской речи?

  • @chinzano
    @chinzano 2 года назад +1

    Вопросы на уровне стажёра, на Джуна уж посложнее задачи спрашивают, как минимум, средний уровень с leetcode

    • @wisejs
      @wisejs  2 года назад

      Собеседование довольно стрессовый процесс. И даже, порой простые вопросы и задачи вызывают трудности. Даже на 1 задачу среднего уровня нужно выделять все собеседование, а ведь спросить хочется не только 1 задачу.

  • @СергейК-б6н
    @СергейК-б6н Год назад +1

    Почему этот парень не моргает а я сразу не понял че не так🤔

  • @n0rison
    @n0rison Год назад

    ну middle вряд ли

  • @OleksiiMalichenko
    @OleksiiMalichenko 2 года назад

    Сделать плоский массив, нельзя использовать flat

    • @pinkiseven659
      @pinkiseven659 2 года назад

      А также нельзя использовать рекурсию

    • @wisejs
      @wisejs  2 года назад +1

      А так же, нельзя использовать массив 😆

    • @pinkiseven659
      @pinkiseven659 2 года назад

      @@wisejs будет тогда сложно

  • @AskoldTheFirst
    @AskoldTheFirst Месяц назад

    только начал смотреть: у тебя ошибка в коде, за sum += array[i] нужно ; ставить.
    вторая ошибка это глупое, нечетабельное использование reduce что бы просто сумму найти. И также делитантский год бет точек с запятой.
    треться eval() - скоро она вообще перестанет поддерживаться в js - причина: безопасность. Твои советы подойдут что бы завалить собес, а не пройти :)
    четыре, зачем ты итерацию в форе с нуля начинаешь?!! for (let i = 0; ... - правильно так: for(let i = 1; - ведь нулевую ячейку ты уже в переменную sum присвоил. о точка с запятой я уже молчу.
    Потом глупое использование тернарного оператора ...
    Рано тебе ещё подобные обучающие видео записывать - сам научись сперва - а потом других учи.
    Пацаны это не программист - не слушайте этот бред. На комерческих проектах таких делитантов не бывает.

  • @alexandroppolus
    @alexandroppolus 2 года назад

    Искать максимум в массиве через сортировку - это дичь. Хуже неё только последний способ Math.max(...arr), приводящий к переполнению стека на длинном массиве. Автор, не учи джунов всякому плохому )

    • @carry-on-chaos4032
      @carry-on-chaos4032 Год назад

      а как правильно? я делал через reduce

    • @alexandroppolus
      @alexandroppolus Год назад +1

      @@carry-on-chaos4032 через reduce вполне норм. Ну или обычным циклом.

  • @plart2006
    @plart2006 2 года назад

    Чаще задвигают всякую теоретическую хрень типа прототипов и принципов ооп. Как говорится, особый js для собесов, который в реальной работе никогда не используется

    • @wisejs
      @wisejs  2 года назад

      Принципы ООП не связаны с js и их у любого программиста могут спросить

  • @pkorneev5226
    @pkorneev5226 Год назад

    junior еще бы поверил для первой легкой задачки на собеседовании, но точно не мидл, это уровень интерна, не более

  • @ГригорийШумихин
    @ГригорийШумихин Год назад +2

    На собесе такое не просят решать. Это детсадовские задачи.

    • @benchik100
      @benchik100 Год назад +3

      😵😵😵 не лишайте меня мотивации.

  • @DreamMaster_ru
    @DreamMaster_ru Год назад

    array.reduce((acc:number, next:number) - Почему у меня аккумуляторы не работают? Все примеры из видео с аккумулятормаи у меня не пашут.
    Хотя reduce вот так работает:
    const array = [1, 2, 2, 4, 5, 6, 6, 100];
    let sum = array.reduce(function (currentSum, currentNumber) {
    return currentSum + currentNumber
    } , 0)

  • @bjdsn
    @bjdsn 2 года назад +1

    function duplicate(nums) {
    return new Set(nums.filter(n => nums.indexOf(n) !== nums.lastIndexOf(n)))
    }

    • @wisejs
      @wisejs  2 года назад

      Крутое решение 👍

    • @Ushakov.M
      @Ushakov.M 2 года назад

      Только Big O у решения большая

  • @Ochenopasniy
    @Ochenopasniy 7 месяцев назад

    Зашёл увидел старющий как мир цикл и сразу закрыл видео 🤮