Viktor
просто разбей задачу на атомарные вещи: автокомплит и отдельно список
Viktor
по автокомлиту нагуглишь море примеров
Viktor
список руками сделать уже очень просто
Dmytro
Ребят почему-то при первой загрузки сайта не срабатывает код, с чем может быть связанно ?
Viktor
что именно не срабатывает?
Roman
Roman
или даже сегодня
Roman
это что собеседование где-то?
Dmytro
писал
Roman
понял. ну расставь console.log
Dmytro
понял щас попробую
Roman
Roman
и посмотри
Roman
или просто catch убери :)
Vadim
꧁༺ĤŐŔŃŶ
Доброго вечера, товарищи. Подскажите куда гуглить вопрос по реализации кнопки "установки" приложения с сайта.
В конкретной реализации в виде веб-ссылки от хрома/сафари на раб.стол?
꧁༺ĤŐŔŃŶ
Для хрома это "Добавить на главный экран", для сафари что-то аналогичное было
Так с
Давно не актуально? Листал ,вроде ответ не нашел. Поменяй на ===
Так с
товарищи. и еще один вопрос. у меня есть файл 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
Viktor
Viktor
Viktor
Viktor
Ошибка не выбросится при изменении value
Viktor
Только в первом выбросится исключение
Anonymous
не правильно :)
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}),
}
Viktor
Viktor
Anonymous
будет thwrow только на 2
Viktor
Viktor
Viktor
꧁༒Dmitry༒꧂
Типа array_merge_recursive , аналог в php
Viktor
Denisio
$.extend (с параметрами же)
Denisio
$.extend(true, obejct1, object2, object3, ... )
Viktor
Viktor
Viktor
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
Можно нативной, я тебе выше написал
Andrew
По мойму да
꧁༒Dmitry༒꧂
Ясно, спс. Да видел loadash, богатая библиотека. Просто хотелось чего-то простого из коробки, без дополнительных либ.
Andrew
Проверь
Viktor
Andrew
))
Andrew
То есть только 1 уровень?
Viktor
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
Viktor
если не секрет
꧁༒Dmitry༒꧂
В обоих направлениях)
Viktor
или какая-то совсем специфическая задача
Viktor
а)
Anonymous
Забудьте уже про lodash, ramda и прочие абстракции накладывающие нехилый оверхед и добавляющие килобайты кода