web-dev-qa-db-ja.com

lodashにオブジェクトの新しいプロパティを追加します

2つのオブジェクトがあり、オブジェクトAからオブジェクトBにプロパティを追加したいのですが、extendを試してみてください

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

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

Aに両方が含まれるようにしたい

a = {
name = "value"
name2 = "value2"
name3 = "value"
name4 = "value2"
}
14
shopia T

_.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>
27
T.J. Crowder

まず、定義されたオブジェクトが正しくありません。オブジェクトは、colon(等号ではなく)で区切られた_name:value_ペアとして記述される必要があります。さらに、カンマ区切りを使用して、次のようにオブジェクトのプロパティを区切る必要があります。

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

lodash を介してさまざまなプロパティを持つオブジェクトを拡張するには、 _.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>_
6

mergeではなく、lodash extend関数を使用したいと思います。参照: Lodash-.extend()/ .assign()と.merge()の違い

3
jwkicklighter