Viktor
просто разбей задачу на атомарные вещи: автокомплит и отдельно список
Viktor
по автокомлиту нагуглишь море примеров
Viktor
список руками сделать уже очень просто
Viktor
я пока лишь учусь, и хочу разобрать, чтобы понять
научишься, только старайся разбивать комплексные задачи, не гугля их целиком
Dmytro
Ребят почему-то при первой загрузки сайта не срабатывает код, с чем может быть связанно ?
Viktor
что именно не срабатывает?
Dmytro
что именно не срабатывает?
не подставляем к тегу html класс fonts-loader
Roman
Ребят почему-то при первой загрузки сайта не срабатывает код, с чем может быть связанно ?
по-моему уже кто-то этот вопрос задавал буквально вчера. и с тем же кодом
Roman
или даже сегодня
Roman
это что собеседование где-то?
Dmytro
по-моему уже кто-то этот вопрос задавал буквально вчера. и с тем же кодом
бро, это был я, я его писала уже ну чуть изменил и все равно никак не подставляем при первой загрузке
Dmytro
писал
Roman
понял. ну расставь console.log
Dmytro
понял щас попробую
Dmytro
понял. ну расставь console.log
при первой загрузке ловит .catch
Roman
при первой загрузке ловит .catch
в catch function(error) добавь
Roman
и посмотри
Roman
или просто catch убери :)
꧁༺ĤŐŔŃŶ
Доброго вечера, товарищи. Подскажите куда гуглить вопрос по реализации кнопки "установки" приложения с сайта. В конкретной реализации в виде веб-ссылки от хрома/сафари на раб.стол?
꧁༺ĤŐŔŃŶ
Для хрома это "Добавить на главный экран", для сафари что-то аналогичное было
Так с
Давно не актуально? Листал ,вроде ответ не нашел. Поменяй на ===
Так с
товарищи. и еще один вопрос. у меня есть файл clients в котором данные в json. там есть объект values:{"50":[42]}. я хочу отфильтровать все записи, где в 50 значение 42. делаю это test = clients.filter(function (t) { if (t.catalog[50][0] == 42) return t }) и вот проблема в том, что фильтр отказывается смотреть в содержимое объекта 50. говорит чт онет такого. если я те же записи скопирую в тело файла с фильтром, то все отлично срабатывает. как побороть эту заразу?
Anonymous
#пятничная_задачка Что будет в каждом из случаев? http://s.csssr.ru/U8SMMLH99/20181019201737.png
Viktor
#пятничная_задачка Что будет в каждом из случаев? http://s.csssr.ru/U8SMMLH99/20181019201737.png
Во втором сеттер не скопируется на новый объект, потому что при копировании в новые свойства просто копируются значения
Viktor
В третьем также
2 и 3 даст объект с value: null
Viktor
Ошибка не выбросится при изменении value
Viktor
Только в первом выбросится исключение
Anonymous
не правильно :)
Viktor
не правильно :)
А что будет? :)
Anonymous
сэмпл // 1 ({ set value(d) { throw new Error('wrong way') }, value: null, }); // 2 Object.assign( {set value(d) { throw new Error('wrong way') }}, {value: null}, ); // 3 { ...({set value(d) { throw new Error('wrong way') }}), ...({value: null}), }
Anonymous
будет thwrow только на 2
Viktor
Viktor
будет thwrow только на 2
я проверил, действительно) это связано с внутренней механикой Object.assign?
Игорь
я проверил, действительно) это связано с внутренней механикой Object.assign?
Object.assign присваивает свойства в целевой объект, а не копирует. Поэтому срабатывают и сеттеры и геттеры.
Viktor
будет thwrow только на 2
я допер, мы же не новый объект создаем
Viktor
Object.assign присваивает свойства в целевой объект, а не копирует. Поэтому срабатывают и сеттеры и геттеры.
ну тут важно заметить, что в пустой объект Object.assign({}, ...) геттеры и сеттеры не попадут
Viktor
Object.assign присваивает свойства в целевой объект, а не копирует. Поэтому срабатывают и сеттеры и геттеры.
я, честно говоря, так привык присваивать всегда к пустому, что не заметил вообще, что там в целевом объекте сеттер стоял
꧁༒Dmitry༒꧂
Object.assign присваивает свойства в целевой объект, а не копирует. Поэтому срабатывают и сеттеры и геттеры.
Кстати есть встроенный аналог, который копирует свойства рекурсивно и заменяет только значения если в целевом объекте уже есть ещё один объект, а если нету, то дополняет?
꧁༒Dmitry༒꧂
Типа array_merge_recursive , аналог в php
Denisio
$.extend (с параметрами же)
Denisio
$.extend(true, obejct1, object2, object3, ... )
Andrew
Viktor
This method is like _.assign except that it recursively merges own and inherited enumerable string keyed properties of source objects into the destination object. Source properties that resolve to undefined are skipped if a destination value exists. Array and plain object properties are merged recursively. Other objects and value types are overridden by assignment. Source objects are applied from left to right. Subsequent sources overwrite property assignments of previous sources.
Andrew
Можно нативной, я тебе выше написал
Viktor
Object.assign( {}, {})
он умеет делать рекурсивно?
Andrew
По мойму да
꧁༒Dmitry༒꧂
Ясно, спс. Да видел loadash, богатая библиотека. Просто хотелось чего-то простого из коробки, без дополнительных либ.
Andrew
Проверь
Andrew
))
Andrew
То есть только 1 уровень?
Viktor
Ясно, спс. Да видел loadash, богатая библиотека. Просто хотелось чего-то простого из коробки, без дополнительных либ.
из коробки много чего нет) поэтому есть столько утилитарных библиотек (ramda, lodash, underscore)
Viktor
То есть только 1 уровень?
да, только 1й уровень, где примитивы копируются по значению, объекты и функции - по ссылке
Viktor
То есть только 1 уровень?
насколько я понял, человеку нужен был deepMerge/deepClone
Andrew
Ну похоже)
Anonymous
Можно и без лодаша: function deepClone(o) { return new Promise(resolve => { const { port1, port2 } = new MessageChannel(); port2.onmessage = ev => resolve(ev.data); port1.postMessage(o); }); } (async function () { const obj = { a: 1, b: { c: "foo" } }; const cloned = await deepClone(obj); console.log(cloned); })(); для ноды не будет работать, но там это и не нужно особо, хватает встроенных утилит
Andrew
Можно руками быстро сделать
Viktor
На самом деле, мне в JS вообще глубокое копирование почти не пригождалось
Andrew
Viktor
Object.assign в 99.9% решает все проблемы
Andrew
))
Viktor
если не секрет
꧁༒Dmitry༒꧂
В обоих направлениях)
Viktor
или какая-то совсем специфическая задача
Viktor
а)
Anonymous
Забудьте уже про lodash, ramda и прочие абстракции накладывающие нехилый оверхед и добавляющие килобайты кода
Viktor
В обоих направлениях)
с JS недавно, или я ошибаюсь?)