Есть два JS-объекта, которые мне нужно слить так, чтобы получился либо уже готовый объект, где нет повторяющихся элементов, либо так, чтобы на выходе я получил объект только с теми "ключ: значение", которых нету в каком-то одном объекте, но есть в другом. Для этого есть spread-оператор в ES2018, но он, видимо, делает не слияние двух объектов, а слияние всех ключей и значений второго объекта в первый, что мне не совсем подходит:
let obj1 = {
obj_nested: {
obj12: 'value',
obj13: 'value'
}
}
let obj2 = {
obj_nested: {
obj12: 'value',
obj14: 'value'
}
}
let merged = {...obj1, ...obj2}
console.log(merged)
Думаю, Вам подойдет данный метод
Но следует помнить про распространенность ES6 и IE
let obj1 = {
obj_nested: {
obj12: 'value',
obj13: 'value'
}
}
let obj2 = {
obj_nested: {
obj12: 'value',
obj14: 'value'
}
}
function deepMerge(...sources) {
let acc = {}
for (const source of sources) {
if (source instanceof Array) {
if (!(acc instanceof Array)) {
acc = []
}
acc = [...acc, ...source]
} else if (source instanceof Object) {
for (let [key, value] of Object.entries(source)) {
if (value instanceof Object && key in acc) {
value = deepMerge(acc[key], value)
}
acc = { ...acc, [key]: value }
}
}
}
return acc
}
console.log(deepMerge(obj1, obj2));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть задача, в ней есть строка которую я не совсем могу понять, разъясните мне пожалуйста следующее
Есть фото галерея, она отображает 5 элементов, остальные скрыты при помощи свойства overflow : hiden, вопрос: как можно сделать подсчет и вывод числа...
Передаю с помощью шаблонизатора Jinja, данные из Django в JavaScriptКод выглядит примерно так: