J'ai deux objets et je veux ajouter des propriétés de l'objet A à l'objet B et j'essaie avec extend qui ne fonctionne pas, dois-je utiliser quelque chose de différent?
a = {
name = "value"
name2 = "value2"
}
b = {
name3 = "value"
name4 = "value2"
}
Je veux que A contienne les deux
a = {
name = "value"
name2 = "value2"
name3 = "value"
name4 = "value2"
}
_.extend
(maintenant appelé _.assign
) est en effet la façon dont vous faites cela:
_.assign(a, b);
Exemple en direct :
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>
Tout d'abord, vos objets définis sont incorrects. Les objets doivent être écrits sous forme de paires name:value
, Séparés par un deux-points (et non par un signe d'égalité). De plus, vous devez utiliser des séparateurs de virgules pour délimiter les propriétés de l'objet, comme:
var person = {
firstName: "Matthias",
lastName: "Eckhart",
eyeColor: "blue"
};
Pour étendre un objet avec différentes propriétés via lodash , vous pouvez utiliser _.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>
Je pense que vous souhaitez utiliser la fonction lodash merge
, plutôt que extend
. Voir: Lodash - différence entre .extend ()/.assign () et .merge ()