honey
(имя рандомно назвала, я не знаю их* по именам, так как не смотрела мультик)
Смотрела Джеки чан, как говорит Джинджер, эй Арнольд!, Котопес, ох уж эти детки (до сих пор помню музыку опенинга!, Как и у котопса), а ещё крутые бобры.
VovaDos
Hide
Вроде 8 типов данных в жс
honey
Вроде 8 типов данных в жс
Ага. Пишут так.
3 пальца на правой руке: number, string, bollean
3 пальца на левой руке:
Null, undefined, и ещё symbol
Это я перечислила примитивные типы
Есть ещё сложный - object
И конечно же ещё один примитивный (который мне не нравится, что он все таки выделен в отдельный тип)
- Bigint
Так что 3+3, +ещё один сложный
И + один мной непризнанный
3+3+1 +1
Hide
NaN еще
honey
NaN еще
Это часть number
Специальное значение
Hide
Блин
honey
Может я, конечно, путаю ._.
honey
Но вроде nan это особое значение, которое прям то и значит - not a number (не число)
honey
Но вроде typeof nan
Вернёт number
honey
Щас посмотрю
Hide
А нет null спутал с NaN 🙈
Hide
Блин хоть на юбилей сьездил стресс снял
Hide
Ато пиздец случился
🏴☠️
Hide
Hide
Моя теплица улетела в полёт и провода порвала
🏴☠️
теплицу с ганжубасом снесло(
Hide
honey
honey
Оо, ты камеру поставил домой ?
honey
Hide
honey
honey
Hide
honey
Может сделать крепления, на крепления прицепить веревки, а веревки закрепить к грузам?
honey
🏴☠️
Но вроде typeof nan
Вернёт number
потому что NaN это тип возвращаемый в результате арифметической операции с несовместимыми типами, например умножение числа на объект
Hide
Ещё пылевой вихрь потом крутил посреди огорода потом. Камеры то вырубились т к провода оборвало
honey
honey
🏴☠️
honey
Получается, если один из доступных аргументов не доступен к арифметической операции (не приводится к намбер), то результат такой операции будет nan
honey
honey
Так или не так?
honey
А можно спросить у вас
Почему есть такое мнение, что в джс всё что есть - это объект
honey
Потому что это меня путает
honey
Как баба Яга путает всех, кто зашёл в её лес
honey
🏴☠️
Hide
Свойства объекта заюзать можно
🏴☠️
1 * {} = NaN
honey
да как-то так
Number({})
-> NaN
А, если невозможно привести аргумент к намбер, то результат такого приведения будет nan
А просто операция с nan, так и вернёт - nan
Hide
Саня показывал эти чудеса )
🏴☠️
Hide
А всякие undefined нафиг
🏴☠️
почитайте спеку https://tc39.es/ecma262
Hide
VovaDos
Hide
И что ты с ними делаешь?)
VovaDos
Банальный пример, проверка на наличие значения в переменной
Hide
Это для условия
Hide
Сами данные как юзаешь для проектов?
🏴☠️
let a; // undefined
honey
ну null присваивается когда явно хочешь показать что значения нет
VovaDos
Hide
Крч не понял вопрос
🏴☠️
если в массиве 1 элемент, а ты пробуешь достать 2 или 3, то жс возвращает undefined
const arr = [1];
arr[2]; // undefined
🏴☠️
Крч не понял вопрос
Почитай серию книг Кайл Симпсон You don't know JS. Есть отдельная книга по типам данных
honey
Отдельная книга. По типам данных
Hide
Yeah, I don't know js bleat 😢
🏴☠️
You Don't Know JS: Types & Grammar
🏴☠️
NaN это особое состояние числа с плавающей точкой по стандарту IEEE 754 https://ru.wikipedia.org/wiki/NaN
🏴☠️
honey
Угу, я посмотрела ссылку)
honey
Функция которая должна оставлять только уникальные значения, и сортировать их таким образом, чтобы первым было значение фрукта, который Чаще всего встречается, а последним тот, что реже всего встречается.
honey
const fruits = ['banana', 'apple', 'banana', 'banana', 'grape', 'watermelon', 'grape']
// getUniqueAndSort(fruits) // [banana, grape, apple, watermelon]cv
function getUniqueAndSort(array) {
const initialObjectOfFruits= {} //{'banana':0}
// инициализируем уникальный фрукт единицей:
array.forEach(el => {
initialObjectOfFruits[el] = 0
})
// считаем одинаковые фрукты:
array.forEach(fruit => {
initialObjectOfFruits[fruit] ++
})
const resultArray = []
// 1. Выбираем фрукт с наибольшим значением
// 2. Пушим его первым в результирующий массив
// 3. Удаляем фрукт из перебираемого обьекта:
for(let i=0; i<Object.keys(initialObjectOfFruits).length;i++){
const biggest = Object.entries(initialObjectOfFruits).reduce((acc, curr) => acc[1] > curr[1] ? acc : curr)[0]
resultArray.push(biggest)
delete initialObjectOfFruits[biggest]
}
// Докидываем оставшиеся фрукты:
for(let key in initialObjectOfFruits){
resultArray.push(key)
}
return resultArray
}
const noRepeatableAndSortingFruits = getUniqueAndSort(fruits)
honey
Длинновато, наверное, можно короче, но работает 👀
honey
Там в конце нужно добавить
console.log(noRepeatableAndSortingFruits)
honey
honey
honey
Спокойной всем ночи🍰!
🏴☠️
const fruits = ['banana', 'apple', 'banana', 'banana', 'grape', 'watermelon', 'grape']
// getUniqueAndSort(fruits) // [banana, grape, apple, watermelon]cv
function getUniqueAndSort(array) {
const initialObjectOfFruits= {} //{'banana':0}
// инициализируем уникальный фрукт единицей:
array.forEach(el => {
initialObjectOfFruits[el] = 0
})
// считаем одинаковые фрукты:
array.forEach(fruit => {
initialObjectOfFruits[fruit] ++
})
const resultArray = []
// 1. Выбираем фрукт с наибольшим значением
// 2. Пушим его первым в результирующий массив
// 3. Удаляем фрукт из перебираемого обьекта:
for(let i=0; i<Object.keys(initialObjectOfFruits).length;i++){
const biggest = Object.entries(initialObjectOfFruits).reduce((acc, curr) => acc[1] > curr[1] ? acc : curr)[0]
resultArray.push(biggest)
delete initialObjectOfFruits[biggest]
}
// Докидываем оставшиеся фрукты:
for(let key in initialObjectOfFruits){
resultArray.push(key)
}
return resultArray
}
const noRepeatableAndSortingFruits = getUniqueAndSort(fruits)
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));
🏴☠️
🏴☠️
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));
или тернар в теле форича
current ? map.set(fruit, current + 1) : map.set(fruit, 1);