Roman
посмотрел чё там. наконец lookbehind завезли
Anonymous
В чем прикол?
Объясните тупому, ну пожалуйста
Roman
а чет я не понял, тематические ссылки тоже запрещены?
Vlad
Объясните тупому, ну пожалуйста
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof
🦜
В чем прикол?
Number сlass, а n не является его инстансом
Anton
В чем прикол?
n.__proto__.constructor === Number
Anonymous
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof
Точно, постоянно путаю proto и prototype, позор мне
Anonymous
Но...
Anonymous
Ну ясно
Anonymous
instanceof берет не обертку, а прям значение, типо того 🤔
Anton
вообще странная фигня. с одной стороны n не является объектом класса (так как не `new Number(5)`) с другой instanceof проверяет цепочку конструкторов прототипа, а совпадающий конструктор у него есть
Vlad
instanceof берет не обертку, а прям значение, типо того 🤔
https://stackoverflow.com/questions/4719320/new-number-vs-number можешь тут почитать, вроде объясняют
Anton
в общем. typeof n и не мучай людей
Anonymous
Хочется универсальный и элегантный механизм проверки инстанса
Anonymous
Выходит это Object(value) instanceof type
Anton
https://stackoverflow.com/questions/4719320/new-number-vs-number можешь тут почитать, вроде объясняют
там не совсем то. там разница между функцией Number и конструктором new Number
Vlad
кароч как я понял var = 5 //вызывает toString\valueOf, то есть возвращает тупо примитив var = new Number(5) //оборачивает все это дело в объект
Vlad
Anton
потому это очень херовое решение - использовать new c Boolean, Number, String
Vlad
+
Anonymous
> вызывает toString\valueOf Нет. Изначально создается примитив, а уже при обращении к его свойствам вызывается обертка
Vlad
особенно, если пишешь условия
Vlad
пасиб
Alex
Подскажите пожалуйста правильно ли так сравнивать объекты ? Результат "true" let a = { name: 'Tom', order: { price: 5 }, age: 20 }; let b = { name: 'Tom', order: { price: 5 }, age: 20 }; JSON.stringify(a) === JSON.stringify(b)
iwannafly
ну вот и ответ
Alex
https://codesandbox.io/s/mqj7pkk90p а так сработает?
Можете ли подсказать алгоритм сравнения ?
Vlad
Можете ли подсказать алгоритм сравнения ?
https://stackoverflow.com/questions/1068834/object-comparison-in-javascript
Alex
Всем спасибо, буду разбираться
Ihor
Подскажите пожалуйста правильно ли так сравнивать объекты ? Результат "true" let a = { name: 'Tom', order: { price: 5 }, age: 20 }; let b = { name: 'Tom', order: { price: 5 }, age: 20 }; JSON.stringify(a) === JSON.stringify(b)
если интересно, результат JSON.stringify не детерминирован, тобишь порядок ключей не гарантируется среди всех возможных вариантов окружения
Anton
сразу продумывай о циклических зависимостях a = {} b = {a: a} a.b = b a == {a: {}, b: {]}?
Alex
сейчас для меня сложность именно во вложенных объектах, каким образом правильно углубляться ? через рекурсию может ?
Anton
через нее
Anonymous
Не обязательно
Anonymous
@amsterlifebot бот по трудоустройству
Marina✨❄️☃️
Всем привет! Кто-то может порекоменловать разработчиков по opentext/fiori/srm? Локация Москва, оформление в штат.
Anonymous
@XaveScor добавь в описание группы же @javascript_jobs
Marina✨❄️☃️
Eugene
ребята, подскажите пожалуйста. template literals из es6 можно использовать только с innerHtml? Больше нет способов создать разметку с их использованием?
Eugene
В классе есть два метода, оба создают разметку, но в одном случае вызывается функция false, в другом с true. Выглядит это вот так. createInitNode() { this.$body.innerHTML = this.template.node(true); } createNode() { this.$body.innerHTML = this.template.node(false); } Если вызывать их одновременно то создастся тот, что вызыван позже. Как то можно сделать так, чтобы было две разметки сделано?
Eugene
второй вызов перезаписывает первый просто
Даа, а как можно манипулировать этим? создать второй метод с разметкой и не париться или есть легальный выход из ситуации?
Maksim
да тут на самом деле я например не особо понимаю какой ожидается результат
Eugene
да тут на самом деле я например не особо понимаю какой ожидается результат
ожидаю, что создаться две таких разметки на странице node(init) { return `<div ${init ? 'class= "botmaker-node init-node"' : 'class= "botmaker-node regular-node'}> <form action="" method="post" class="form-group"> <div class="node-form-input"> <label ${init ? 'for="startNode"' : 'for="regularNode"'}>Phrase</label> <input type="text" class="form-control" id=${init ? 'startNode' : 'regularNode'} placeholder="Start phrase"> <button type="submit" class="btn btn-primary node-submit">Ок</button> </div> </form> </div>`; }
Eugene
только с разными классами
Maksim
яснее особо не стало, можно попробовать вместо = использовать +=
Maksim
возможно ожидается такое поведение
Eugene
тут в смысле
да) все так как нужно сработало) А это не костыль?
Maksim
да тут похоже и без этого костылей хватает
Xaxashutkin
ощущение словно он хочет свой реакт сделать
Connor
кто то видел что типа return s,k это как о чем мне по читать?
Maksim
кто то видел что типа return s,k это как о чем мне по читать?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator
Connor
спасибо
Roman
обычно ничем хорошим comma operand не заканчивается :) об этом даже линтеры предупреждают
Dima
Может как-то более изящно можно написать на JS?
Dima
JS после Ruby. Читабильность.
Dima
Dima
Dima
https://www.codewars.com/kata/ball-and-cups/ruby
Dima
Тот же самый алгорим?
Игорь
2 cups 1 magician
Dima
вот красивое решение function cupAndBalls(b, arr){ const cups = [false,false,false,false] cups[b] = true for( const [a,b] of arr) [cups[a],cups[b]] = [cups[b],cups[a]] return cups.findIndex(Boolean) };
Игорь
там же 3 кружки
Dima
for(const [a,b] of arr) - удобно.
Dima
там же 3 кружки
одну лишнюю добавляют, для того чтоб не перебивать индесксы массива.
Игорь
Имхо код должен быть очевидным. А так написано 3 стакана, а их 4
Dima
Имхо код должен быть очевидным. А так написано 3 стакана, а их 4
Дружщие, это классический прием олимпиадного программирвоания для уменьшеня возни с индексами.
Dima
работа с индексами добавит суеты в код в большем количестве мест.
Dmytro
ребят, всем привет, вопрос конечно туповатый, но если поможете разобраться буду благодарен: есть несколько рядов на добавление единиц товара, товар обновляется в базе данных после изменения состояния инпута... такой кофескрипт. Подскажите плиз как правильно сделать чтобы обновлялся конкретно тот инпут, который редактирую, кому не сложно... ссори если вопрос действительно тупой https://gist.github.com/Dimetriu/23bf165d0a4cd2d124fa51b2d6976470