Добавить новые свойства объекта в lodash

у меня есть два объекта, и я хочу добавить свойства из объекта A в объект B, и я пытаюсь с расширения что не работает, мне нужно использовать что-то другое ?

a = {
name = "value"
name2 = "value2"
}

b = {
name3 = "value"
name4 = "value2"
}

Я хочу, чтобы A содержал оба

a = {
name = "value"
name2 = "value2"
name3 = "value"
name4 = "value2"
}

3 ответов


_.extend (ныне _.assign) действительно, как вы делаете это:

_.assign(a, b);

Видео:

var a = {
name: "value",
name2: "value2"
};

var b = {
name3: "value",
name4: "value2"
};

_.assign(a, b);
document.body.insertAdjacentHTML(
  "beforeend",
  "Result:<pre>" + JSON.stringify(a, null, 2) + "</pre>"
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.6/lodash.min.js"></script>

прежде всего, ваши определенные объекты неверны. Объекты должны быть записаны как name:value пары, разделенные (и не знаком равенства). Кроме того, вы должны использовать запятые-разделители чтобы разграничить свойства объекта, например:

var person = {
    firstName: "Matthias",
    lastName: "Eckhart",
    eyeColor: "blue"
};

расширить объект с различными свойствами через лодашь, вы можете использовать _.assign(object, [sources], [customizer], [thisArg]):

var a = {
  name: "value",
  name2: "value2"
};

var b = {
  name3: "value",
  name4: "value2"
};

_.assign(a, b); // extend

console.log(a);
<script src="https://raw.githubusercontent.com/lodash/lodash/3.10.1/lodash.min.js"></script>

Я считаю, что вы хотите использовать lodash , а не extend. См.: Lodash-разница между .расширять. / )(назначать и. merge ()