Size: a a a

JavaScript.Ninja

2021 February 04

AI

Arthur Irgashev in JavaScript.Ninja
во всяком случае, в языке типа js. если те же шарпы мне кинут ошибку на этапе парсинга (да и то - не всегда), то тут вообще ничего не будет
источник

Ж

Жаргал in JavaScript.Ninja
Arthur Irgashev
ну, хз, для меня вообще дико работать с данными из внешнего мира без предварительной обработки
Язык сделан ведь не только для вас...
Его используют в разных странах, разные люди и т.д. и т.п.
источник

AI

Arthur Irgashev in JavaScript.Ninja
а вдруг сервис сбоит и отсылает мне невалидные объекты ?
источник

S

Sergei in JavaScript.Ninja
Arthur Irgashev
быстрее, чем за O(n) не сделаешь, если изначально хранить в массиве
это понятно. Я вот только не соображу, мой способ он O(n) или побольше..
источник

Ж

Жаргал in JavaScript.Ninja
То, что для вас не норм, для кого-то золотой стандарт
источник

AI

Arthur Irgashev in JavaScript.Ninja
Жаргал
Язык сделан ведь не только для вас...
Его используют в разных странах, разные люди и т.д. и т.п.
ну это не отменяет общие практики, наработанные десятилетиями в разных языках
источник

AI

Arthur Irgashev in JavaScript.Ninja
Sergei
это понятно. Я вот только не соображу, мой способ он O(n) или побольше..
да, он O(n)
источник

AI

Arthur Irgashev in JavaScript.Ninja
номинально :)
источник

AI

Arthur Irgashev in JavaScript.Ninja
фактически, конечно, он может работать медленнее, но это нужно проверять. по алгоритмике O(n)
источник

AI

Arthur Irgashev in JavaScript.Ninja
но вообще, я бы переписал через for (), т.к. у тебя тут двойной проход по коллекции идёт (один на Array.from(), второй на new Set())
источник

AI

Arthur Irgashev in JavaScript.Ninja
Sergei
это понятно. Я вот только не соображу, мой способ он O(n) или побольше..
const set = new Set();
items.forEach(() => {
 if(item.prop) set.add()
})
источник

AI

Arthur Irgashev in JavaScript.Ninja
так в теории будет быстрее
источник

Ж

Жаргал in JavaScript.Ninja
Arthur Irgashev
ну это не отменяет общие практики, наработанные десятилетиями в разных языках
Практика — это договоренность.
Язык — факт.

Язык не стремиться дать только самые крутые средства. Он стремиться дать то, что работает.

А как разработчики этим пользуются — уже на их совести.
источник

S

Sergei in JavaScript.Ninja
Arthur Irgashev
так в теории будет быстрее
А это принципиально отличается?
источник

S

Sergei in JavaScript.Ninja
Вроде под капотом тоже самое
источник

S

Sergei in JavaScript.Ninja
Разве чтоивызов функций
источник

AI

Arthur Irgashev in JavaScript.Ninja
Sergei
А это принципиально отличается?
ну у тебя две итерации есть (фактически, не 2 N, а n + m)

первая - Array.from()
вторая - new Set(items)
источник

AI

Arthur Irgashev in JavaScript.Ninja
т.е. у тебя идёт маппинг сначала, а потом по данным отмапленным создаётся сет, который сам итерирует массив и добавляет значения
источник

AI

Arthur Irgashev in JavaScript.Ninja
Жаргал
Практика — это договоренность.
Язык — факт.

Язык не стремиться дать только самые крутые средства. Он стремиться дать то, что работает.

А как разработчики этим пользуются — уже на их совести.
так причём здесь. речь о том, что если сервер присылает рандомные данные, то тебе и instanceof не поможет. почему ? Потому что при инициализации класса ты можешь не сделать всех нужных проверок и во внутренний стейт проскочит лабуда

номинально тип будет инстансом чего-либо, а фактически - будет полная ерунда и вообще весь апп может или закрашиться, или дать кучу багов
источник

AI

Arthur Irgashev in JavaScript.Ninja
а если валидировать и делать пред-обработку, то и обычным {type: Val, ...props} обойтись можно :)
источник