Для числового массива: arrayWithDublicates.sort((x1, x2) => x1 - x2).reduce((acc, next, index, arr) => next === arr[index + 1] ? [...acc, next] : acc, []). Для других типов данных меняем сортировку, которая была подробно рассмотрена в ролике👆
@@Yupitrerда жестко бывает т.к. компания небольшая и должность размыта.. я типа фронтенд, но так же и бекенд писать приходится, и на AWS колупаться постоянно.. такое..но, бабки платят и хорошо;)
Для разворачивания массива можно воспользоваться методом массива reduceRight, который работает как обычный, но итерируется с конца массива const reversedArray = array.reduceRight((accum, elem) => { accum.push(elem); return accum; }, []);
Контент богов! Наконец-то я нашел то, что искал. Сколько не гуглил задачи на массивы, выдаются сразу довольно сложные примеры, на которых разобраться в теме очень сложно. А тут как раз базовые задачи, да еще и с несколькими вариантами решений. Спасибо огромное!
Делюсь опытом, была задача на собеседовании написать функцию для проверки слова на палиндром, там работа и с массивом, и с строкой. Кто не знает, что это такое и как ее решать, советую глянуть.
А чего там решать? Слово в массив, массив развернуть и склеить в слово, результат сравнить с первоначальный словом. Можно с циклом заморочится или рекурсией. Для зарядки ума.
12:00: вторым аргументом назначаем this = наш array. первым аргументом, т.е. в качестве вызываемого колбэка передаем метод массива pop(), который внутри обращается к this т.е. к массиву, у которого вызывается. если я правильно поняла, когда что-то передается в качестве аргумента оно теряет контекст, потому что это вроде как эквивалентно присвоению переменной. поэтому нам нужно передать контекст вторым аргументом
В версиях 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 ))))
В предпоследней задаче можно было бы воспользоваться методом sort: const arr = [1, 2, 3, 4, 5, 6, 88]; const reversed = arr.sort((a, b) => { return b - a; }); console.log(reversed);
map(callbackFn, thisArg) Array(array.length).fill(null).map([].pop, [...array]); де: Array(array.length).fill(null) - масив будь-яких значень аналогічної довжини [].pop - потрібна сама функція [...array] - масив, з якого на кожному кроці буде забиратися останнє значення. Якщо без ... (деструктиризації), тоді очистить попередній масив array
Стало интересно и пошел разбираться. С некоторым успехом вроде что-то вышло.😁 Для данной записи: [...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) Кажется, что я только запутал.😂
Array.from( new Array(arr.length) , () => arr.pop() ) в пустой массив той же длины накидываются попнутые значения. Так это выглядит в читаемой реализации, хотя всё равно способ идиотский, так как происходит мутация исходного массива. Еще при этом зачем-то усложнил получением ссылки на метод массива и прокинутым в неё this. Любителей всё усложнять везде же любят)
@@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))
Спасибо, что поделились решением! Способ вполне работающий, но у него всё же квадратичная сложность по времени из-за пепесоздания массива на каждой итерации. Можно переписать примерно так: array.reduceRight((acc, item) => (acc.push(item), acc), []) ...или даже решить через map: array.map((_, i, arr) => arr.at(~i))
Стосовно розвертання масиву через map(array.pop, array) функція видаляє останній елемент масиву і повертає його, який в свою чергу записується в результат функції map. А в якості this для метода pop передається array, який скорочується.
Такой легкотни на собеседовании быть просто не может. Это даже не уровень джуна. Да, задачи тоже на массивы могут быть, но они будут куда сложнее и не такими очевидными, да еще и с особыми требованиями, типа сделать то-то, не используя что-то (например, какие-то стандартные методы) или не используя дополнительную память, либо показать алгоритм с заданной сложностью. В общем, такие задачи могут быть лишь на собеседовании в какой-то сказочной компании. А таковых давно не существует.
@@wisejs но сначала-то все примеры без мутации что мешало array.map([].pop, [...array]) ? если мутировать оригинальный массив - надо было и с двумя указателями дать пример
Почему ты таким устаревшим циклом пользуешься? И ещё вводишь в заблуждение новичков! А также тут многие пишут что таких задач нет на собесах! Зря потерянное время …
Все ок но почему "маС"? Разве Mathematics читается маСематикс? Ладно хоть не маЗ, но слушаете как произносится слово правильно а то вы говорите я не пойму что за маС
@@wisejs сортировкой делать было нельзя. Поэтому прошелся обычным for-ом. Но и это их не устроило. Сказали мой алгоритм слишком затратный. Это было тюлет 3 назад
@@wisejs простой сортировкой эту задачу не решить, потому что могут быть дубликаты, придется set еще городить, это не рационально upd: зато читабельно, и чаще всего на фронте глубоко пофиг, сколько займет операция с массивом - 3мс или 10мс, а вот разбираться с кодом из кучи циклов нахрен никому не упало
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]
Собеседование довольно стрессовый процесс. И даже, порой простые вопросы и задачи вызывают трудности. Даже на 1 задачу среднего уровня нужно выделять все собеседование, а ведь спросить хочется не только 1 задачу.
@@McNeelone я думаю он имел ввиду работу с DOM элементами , если сразу просят работать с ними ,то лучше сразу покинуть собеседование... Я так его понял
@@plart2006 ну такой себе совет. Если ты умеешь крутить деревья, то почему бы и не покрутить? Если не умеешь, то да, можно сразу уходить: у тебя и у компании разные взгляды на то, что ты должен знать и уметь на той позиции, куда тебя собеседуют. И консенсус вряд-ли получится.
а нельзя в максимальном или минимальном элементе массива сделать так? const arr = [3, 2, 4, 5, 1] const min = arr.sort()[0] const max = arr.sort()[arr.length - 1]
Искать максимум в массиве через сортировку - это дичь. Хуже неё только последний способ Math.max(...arr), приводящий к переполнению стека на длинном массиве. Автор, не учи джунов всякому плохому )
Чаще задвигают всякую теоретическую хрень типа прототипов и принципов ооп. Как говорится, особый js для собесов, который в реальной работе никогда не используется
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)
Домашнее задание: Найти дубликаты (повторяющиеся элементы) в массиве. Решение присылайте в комментарии 👇
uniqueNumbers = new Set(array)
@@imthebest8000 это не найдёт дубликаты
@@9mikaela да, я просто не правильно прочёл задание
Для числового массива: arrayWithDublicates.sort((x1, x2) => x1 - x2).reduce((acc, next, index, arr) => next === arr[index + 1] ? [...acc, next] : acc, []). Для других типов данных меняем сортировку, которая была подробно рассмотрена в ролике👆
array.filter( (el, i) => i !== array.lastIndexOf(el) )
Сейчас готовлюсь к собесам на новую работу, ставил на паузу и решил всё, НО некоторые твои варианты взорвали мозг) реально круто!
Как новая работа?
@@Yupitrerда жестко бывает т.к. компания небольшая и должность размыта.. я типа фронтенд, но так же и бекенд писать приходится, и на AWS колупаться постоянно.. такое..но, бабки платят и хорошо;)
Какие задачи по алгоритмам пригодились для собеса
?
@@adamarturov6361 это год назад уже было, не помню, но может быть что угодно из них.
Для разворачивания массива можно воспользоваться методом массива reduceRight, который работает как обычный, но итерируется с конца массива
const reversedArray = array.reduceRight((accum, elem) => {
accum.push(elem);
return accum;
}, []);
array.reduceRight((acc, item) => {
return [
...acc, item
]
},
[])
Пушить в аккумулятор плохая практика
@@SuperPirks в каком месте это плохая практика? Вот клонировать массив на каждой итерации - это действительно плохая практика.
@@SuperPirks лучше acc.concat(item)
Как раз прохожу собесы сейчас. То, что нужно как раз👌 . Спасибо 😉
Решение второй задачи, зачем мудрить?))
const max = Math.max(...array);
const min = Math.min(...array);
Контент богов! Наконец-то я нашел то, что искал. Сколько не гуглил задачи на массивы, выдаются сразу довольно сложные примеры, на которых разобраться в теме очень сложно. А тут как раз базовые задачи, да еще и с несколькими вариантами решений. Спасибо огромное!
покажика эти сложные задачи)попробую их на зубок чтоб отскакивала как таблица умножения
Спасибо,Максим,что продолжаете радовать нас отличным контентом,очень крутое видео!
благодарю за момент с сортировкой, на прошлом собесе не смог внятно ответить, а тут вот оно как))
Дружище, ты просто машина, я бы сказал - живой калькулятор)
Подписка и лайк однозначно!
Делюсь опытом, была задача на собеседовании написать функцию для проверки слова на палиндром, там работа и с массивом, и с строкой. Кто не знает, что это такое и как ее решать, советую глянуть.
А где найти видео не смог найти видео с решением задачи
А чего там решать? Слово в массив, массив развернуть и склеить в слово, результат сравнить с первоначальный словом. Можно с циклом заморочится или рекурсией. Для зарядки ума.
Перевернуть массив можно и нужно за O(n) и без доппамяти.
Нужно в цикле от 0 до length/2 менять местами i-ый элемент с length - 1 - i
12:00: вторым аргументом назначаем this = наш array. первым аргументом, т.е. в качестве вызываемого колбэка передаем метод массива pop(), который внутри обращается к this т.е. к массиву, у которого вызывается. если я правильно поняла, когда что-то передается в качестве аргумента оно теряет контекст, потому что это вроде как эквивалентно присвоению переменной. поэтому нам нужно передать контекст вторым аргументом
Классный видосик. Гоу теперь про объекты :)
Класс! Сделай еще задачки с циклами))
Хорошая идея)
Классный выпуск,большое спасибо! js, reduce, map, filter, sort, pop.
Спасибо за ключевые слова!
ты крутой! я подписался) нажал лайк, надеюсь у вас будут выходить такие позновательные видео
Найти максимальный элемент массива через сортировку это гениально
Это был сарказм? Просто я новичок и немогу пока точно понять хорошо это или плохо.
@@LuNa-om8ci объясню проще: вместо линейной сложности мы используем квадратичную
Классное видео. Интересные примеры. Спасибо
С filter() не надо приводить к boolean через "!!", движок сам это сделает.
👌 буду решать
Привет ✌️
Спасибо 🔥👍
спасибо, контент огонь
09:50
const arrow = [1,2,3,4,5,6,7,9,12]
console.log(arrow.sort(() => {return -1}));
тоже идеально будет работать
отлично решение, вот его упрощенная запись (без return и фигурных скобок):
arrow.sort(() => -1)
Great job 🔥 Keep on going!
В версиях 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 Если человек хочет впечатлить собеседующего, рекомендую провести тутор - как писать код столбиком, по 1 символу в строке ))))
@@lambdius 😂
Обычно в продакшене готовые апи юзаешь, Бек уже все отфильтровал )
Полезно ! спасибо !
В предпоследней задаче можно было бы воспользоваться методом sort:
const arr = [1, 2, 3, 4, 5, 6, 88];
const reversed = arr.sort((a, b) => {
return b - a;
});
console.log(reversed);
не можно, потому что задача развернуть а не отсортировать. вот с таким массивом не будет работать верно: const arr = [1, 22, 3, 4, 5, 6, 88]
спасибо , продолжай!
Касательно варианта с разворотом массива, можно еще воспользоваться reduceRight. =)
arr.reduceRight((p, c) => [...p, c], []);
it's most popular information! thanks
Дз: создать объект где ключом будут значения элементов массива, а значением - количество их повторений и в зависимости от задачи перебрать объект.
Все так, но вместо объекта лучше Map 😆
Классное видео, благодарю автора за освежение памяти! Надеюсь вы живы. Говорят, в этом году всё кончится.
Привет, найти самое редковстречающееся значение в числовом массиве, или сгенерировать n массив, заполненный рандомными числами от min до max)
Тоже попадалось с рандомными числами
привет . спасибо за видео
Отличный видос)
За eval по рукам надо бить))
map(callbackFn, thisArg)
Array(array.length).fill(null).map([].pop, [...array]);
де:
Array(array.length).fill(null) - масив будь-яких значень аналогічної довжини
[].pop - потрібна сама функція
[...array] - масив, з якого на кожному кроці буде забиратися останнє значення. Якщо без ... (деструктиризації), тоді очистить попередній масив array
array.map([].pop, [...array])
Стало интересно и пошел разбираться. С некоторым успехом вроде что-то вышло.😁
Для данной записи: [...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 Ну и хорошо значит.😁
Array.from( new Array(arr.length) , () => arr.pop() ) в пустой массив той же длины накидываются попнутые значения. Так это выглядит в читаемой реализации, хотя всё равно способ идиотский, так как происходит мутация исходного массива. Еще при этом зачем-то усложнил получением ссылки на метод массива и прокинутым в неё this. Любителей всё усложнять везде же любят)
@@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))
От души
Альтернатива для reverse)
array.reduceRight((acc, item) => [...acc, item], [])
Это когда лень писать for с обратным циклом))
Спасибо, что поделились решением! Способ вполне работающий, но у него всё же квадратичная сложность по времени из-за пепесоздания массива на каждой итерации. Можно переписать примерно так: array.reduceRight((acc, item) => (acc.push(item), acc), [])
...или даже решить через map:
array.map((_, i, arr) => arr.at(~i))
@@SerzhNesteruk с первым вашим решением согласен, да, но второе читается сложновато)) заставляет залезть в доку и чекнуть инфу про тильду и at
Стосовно розвертання масиву через map(array.pop, array) функція видаляє останній елемент масиву і повертає його, який в свою чергу записується в результат функції map. А в якості this для метода pop передається array, який скорочується.
const max = arr.toSorted((a, b) => b - a)[0];
Есть еще функция Есть еще функция getMaxOfArray ([1, 2, 3])
прикольный канал, не помню откуда я тебя взял
🧐
Задача. Есть четыре массива по 4 цифры, цифры разбросаны, найти максимальное число , и вывести новый массив максимальных чисел.
Сводится к поиску максимального числа в матрице (насколько я понимаю)
const arrey = [1, 2, 3, 4]
const xw = arrey.reduce((x, y) => x + y);
console.log(xw)
это по короче
Спасибо, array.filter(item => item) тоже сработает
Домашнее задание: Можно использовать new Set... [...new Set(someArray)]
Не убрать их, а найти :)
7:02 Как вы открыли увеличитель, которая типа лупы?
eval это прикол конечно, думаю лучше так не делать на собеседовании 😅
Почему? Это самый краткий и самый понятный способ.
а почему, если не использовать деструктуризацию в выражении array.map(array.pop, array), вернет [6,6,5,4,,,] ?
лайк за localeCompare
Смотрящим через 2 года: нет, настолько простые задачи вас на собеседовании решать не попросят.
Такой легкотни на собеседовании быть просто не может. Это даже не уровень джуна. Да, задачи тоже на массивы могут быть, но они будут куда сложнее и не такими очевидными, да еще и с особыми требованиями, типа сделать то-то, не используя что-то (например, какие-то стандартные методы) или не используя дополнительную память, либо показать алгоритм с заданной сложностью. В общем, такие задачи могут быть лишь на собеседовании в какой-то сказочной компании. А таковых давно не существует.
3:11 через sort было бы легче и быстрее сделать как мне кажется
4:19
Никто не пишет вручную алгоритмы, вместо этого используют lodash, в котором они реализованы
Последний пример мутирует предыдущий массив, это плохо)
Последний пример какой задачи?
Развернуть массив
не всегда плохо, зависит от требований
@@wisejs но сначала-то все примеры без мутации
что мешало array.map([].pop, [...array]) ?
если мутировать оригинальный массив - надо было и с двумя указателями дать пример
Можно больше задач по JS c собеседований
8:38 ошибка в строке 23, в if-е должен стоять ===.
не понял про array.filter(boolean) почему работает? Если весь массив передается, почему он возвращает все те что тру ведь boolean === true равно фолс
Почему ты таким устаревшим циклом пользуешься? И ещё вводишь в заблуждение новичков! А также тут многие пишут что таких задач нет на собесах! Зря потерянное время …
Все ок но почему "маС"? Разве Mathematics читается маСематикс? Ладно хоть не маЗ, но слушаете как произносится слово правильно а то вы говорите я не пойму что за маС
просили найти второе и третье максимальное значение массива перебрав его всего один раз
Как решали? Сортировкой?
@@wisejs сортировкой делать было нельзя. Поэтому прошелся обычным for-ом. Но и это их не устроило. Сказали мой алгоритм слишком затратный. Это было тюлет 3 назад
@@azizoid O(n2 если 2 раза перебирал. Хотели, наверное, быстрее.
@@wisejs простой сортировкой эту задачу не решить, потому что могут быть дубликаты, придется set еще городить, это не рационально
upd: зато читабельно, и чаще всего на фронте глубоко пофиг, сколько займет операция с массивом - 3мс или 10мс, а вот разбираться с кодом из кучи циклов нахрен никому не упало
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]
В последней задаче зачем в иф делать !! если все что в условии и так приведется в бул значение
Привет ) Скажи пожалуйста что за шрифт у тебя в web-storm ? Заранее спасибо )
Дефолтный, не менял
@@wisejs спасибо )
jetbrains mono
а разве нельзя развернуть массив тем же методом sort, только возвращать x2 - x1 вместо x1 - x2?
и в filter просто использовать сам текущий item без boolean
x2 - x1 - отсортирует по убыванию
да, так можно, но не особо очевидно как по мне
Нет, нельзя. Если массив изначально не сортирован, то такой "разворот" вернёт сортированный.
ну не знаю не знаю, мне и на джуна задачи сложнее попадались
Вопросы на уровне стажёра, на Джуна уж посложнее задачи спрашивают, как минимум, средний уровень с leetcode
Собеседование довольно стрессовый процесс. И даже, порой простые вопросы и задачи вызывают трудности. Даже на 1 задачу среднего уровня нужно выделять все собеседование, а ведь спросить хочется не только 1 задачу.
тернарным, а не тренарным
Почему этот парень не моргает а я сразу не понял че не так🤔
каким каким оператором? тренарным? 😂 может тернарным?
Сомнительно чтобы давали настолько простые задачи на собесе
Если просят крутить деревья, лучше сразу уйти. Потом такие особи крутят тебе мозги
@@plart2006 по подробней можно?
@@McNeelone я думаю он имел ввиду работу с DOM элементами , если сразу просят работать с ними ,то лучше сразу покинуть собеседование...
Я так его понял
@@KrivovNikolay бинарные деревья поиска
@@plart2006 ну такой себе совет. Если ты умеешь крутить деревья, то почему бы и не покрутить? Если не умеешь, то да, можно сразу уходить: у тебя и у компании разные взгляды на то, что ты должен знать и уметь на той позиции, куда тебя собеседуют. И консенсус вряд-ли получится.
а нельзя в максимальном или минимальном элементе массива сделать так?
const arr = [3, 2, 4, 5, 1]
const min = arr.sort()[0]
const max = arr.sort()[arr.length - 1]
да кнчн
Если в массиве будет 100, то max у Вас будет равна 5, что будет ошибкой.
Это websrorm ?
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))]);
ну middle вряд ли
junior еще бы поверил для первой легкой задачки на собеседовании, но точно не мидл, это уровень интерна, не более
Меня одного выворачивает, когда люди пытаются произнести английские слова как носители в русской речи?
Сделать плоский массив, нельзя использовать flat
А также нельзя использовать рекурсию
А так же, нельзя использовать массив 😆
@@wisejs будет тогда сложно
Искать максимум в массиве через сортировку - это дичь. Хуже неё только последний способ Math.max(...arr), приводящий к переполнению стека на длинном массиве. Автор, не учи джунов всякому плохому )
а как правильно? я делал через reduce
@@carry-on-chaos4032 через reduce вполне норм. Ну или обычным циклом.
Чаще задвигают всякую теоретическую хрень типа прототипов и принципов ооп. Как говорится, особый js для собесов, который в реальной работе никогда не используется
Принципы ООП не связаны с js и их у любого программиста могут спросить
На собесе такое не просят решать. Это детсадовские задачи.
😵😵😵 не лишайте меня мотивации.
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)
function duplicate(nums) {
return new Set(nums.filter(n => nums.indexOf(n) !== nums.lastIndexOf(n)))
}
Крутое решение 👍
Только Big O у решения большая
Зашёл увидел старющий как мир цикл и сразу закрыл видео 🤮