honey
const fruits = ['banana', 'apple', 'banana', 'banana', 'grape', 'watermelon', 'grape'];
const uniqSortedDesc = arr => {
const map = new Map();
fruits.forEach(fruit => {
const current = map.get(fruit);
if (current) {
map.set(fruit, current + 1)
} else {
map.set(fruit, 1);
}
});
return [...map.keys()];
}
console.log(uniqSortedDesc(fruits));
с мап и сет у меня пока так себе, я только помню, что с помощью сет можно оставить только уникальыне значения, но юзать его не решилась из-за того, что нужно было не только убрать дубли, но и подсчитать. наверное стоит к этому вернуться, блин...
Pavel
Pavel
точнее незавершенное, отсутствует сортировка
🏴☠️
const uniqSortedDesc = arr => {
const map = new Map();
fruits.forEach(fruit => {
const current = map.get(fruit);
current ? map.set(fruit, current + 1) : map.set(fruit, 1);
});
return [...map].sort((a, b) => b[1] - a[1]).flatMap(item => item[0])
}
🏴☠️
я забыл про сортивку вчера в 5 ночи, сорян @Tasvetla ))
honey
13:38?
🏴☠️
honey
Может он создает пары ключей и значений
🏴☠️
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#objects_vs._maps
honey
Но если мап это набор ключей и значений, то как ты сортировал массив, в который ты развернул мап... Ведь нужно по значению сортировать, а там ещё ключ. То есть нужно сортировать по значению, а брать в результрубщий массив только ключ
honey
honey
🏴☠️
Но если мап это набор ключей и значений, то как ты сортировал массив, в который ты развернул мап... Ведь нужно по значению сортировать, а там ещё ключ. То есть нужно сортировать по значению, а брать в результрубщий массив только ключ
мап итерируемый, его можно выкатить в массив, получится массив такого вида
[
[ 'banana', 3 ],
[ 'apple', 1 ],
[ 'grape', 2 ],
[ 'watermelon', 1 ]
]
honey
honey
Типа обджект.ентриес что ли
honey
Каша какая-то
🏴☠️
Так это массив с подмассивами
такой массив получится из такой мапы, если ты вызовешь метод map.entries() или спредом раскатаешь в массив [...map]
Map { 'banana' => 3, 'apple' => 1, 'grape' => 2, 'watermelon' => 1 }
будет
[
[ 'banana', 3 ],
[ 'apple', 1 ],
[ 'grape', 2 ],
[ 'watermelon', 1 ]
]
🏴☠️
honey
Каша какая-то
Это я про то что у меня в голове спуталось то что я знаю, вас это никак не касается
Говоря про кашу я имела ввиду только то что у меня есть в голове, какие мысли у меня есть относительно текущих обсуждений
honey
Ух хд
🏴☠️
honey
honey
honey
Зато я сегодня закрыла все вопросы по джс свои
honey
Открыла короче документ и закрыла
honey
Шутка. Ответила все
honey
Как послю буду смотреть требования к вёрстке и начинать
honey
такой массив получится из такой мапы, если ты вызовешь метод map.entries() или спредом раскатаешь в массив [...map]
Map { 'banana' => 3, 'apple' => 1, 'grape' => 2, 'watermelon' => 1 }
будет
[
[ 'banana', 3 ],
[ 'apple', 1 ],
[ 'grape', 2 ],
[ 'watermelon', 1 ]
]
А как это у тебя в мапе, бананы - уже посчитаны 🧐
honey
Сейчас посмотрю ещё раз
honey
Стоп. Почему ты в 5 утра в чат пишешь и джс объясняешь ? Тем более код
🏴☠️
honey
honey
Видимо дело в том, что я не посмотрела, как работает метод гет у мапы
honey
Так, ладно, после верстки или в свободное время
honey
Мне просто интересно задачку было попробовать сделать
Pavel
const fruits = ['banana', 'apple', 'banana', 'banana', 'grape', 'watermelon', 'grape']
const uniqSortedDesc = arr => {
const map = {}
arr.forEach(element => {
map[element] = ++map[element] || 1
})
return Object.keys(map).sort((a, b) => map[b] - map[a])
}
console.log(uniqSortedDesc(fruits));
Pavel
это без Map
honey
honey
honey
Проверено
honey
А тут я не знала как сортировать значения и при этом забирать ключ)
honey
А ты сделал
Pavel
решение задачек с Люпусом на codewars дает свои плоды 🙃
honey
Pavel
был один жутко умный парень в чате, который очень любил решать задачки
Pavel
еще когда я только начинал учиться
honey
Ну что ж, понятно
honey
Надеюсь у меня так тоже будет со временем получаться (с практикой я имею ввиду )
А то как решать то я, может быть, и придумаю, и даже решу, но вот как проще и короче сделать - это уже отдельное
honey
Выглядит как соколиная высота
Потому что я не совсем понимаю, что нужно делать чтобы тоже так уметь
honey
Если с версткой более или менее понятно что делать, с джс тоже
honey
Для меня это выглядит как чувство стиля какое-то
Я могу одеться чтобы было тепло, надеть колготки, штаны, и 15 кофт
А можно подумать и выбрать материал в котором будет тепло также, только он будет менее громоздким (но таким же функциональным)
И в данном случае я не совсем понимаю как именно подумать, в какую сторону
Методы массивов и объектов выучить - да вряд-ли, но некоторые часто используемые лишними не будут. Может дело просто в том, чтобы знать несколько решений, тип "можно так решить", "а можно эдак".. и чтобы эти решения в голове всплывали возможно стоит их использовать чаще
honey
honey
Ладно, я спатеньки
honey
Доброго всем дня
Pavel
Pavel
ты когда видишь красивое решение, старайся понять как именно его решили и почему так, тогда со временем у тебя будут эти решения тоже всплывать в голове
honey
🏴☠️
Еще можно воспользоваться дебаггером и расставить брейкпоинты
🏴☠️
https://developer.chrome.com/docs/devtools/javascript/sources/#debug
honey
honey
Брекпоинтами, кстати, пользовалась только в начале самом, когда училась парсеры писать
И то ооочень мало.
А режимом дебага вот недавно ) оказывается, удобно в вс коде через режим дебага вёрстку делать :D
В хроме открывается вкладка и обновляется себе, пока я код пишу, здорово* так!
🏴☠️
Hide
Читер!
Hide
Я так размеры подгоняю )
Hide
И расположение блоков
🏴☠️
пиксель перфект так подгонять
Hide
Чето я с ним не подружился ещё с этим пикселем )
Pavel
Китайские акции сегодня выросли 🙃
Pavel
Немного бесполезной информации вам)
🏴☠️
Pavel
Да, понемногу начинаю
Pavel
Ты думаешь я вижу будущее?)