私は2つのjavascriptオブジェクトを持っています:
var a = {
x: 1,
y: {
faz: 'hello',
baz: ''
},
z: [1, 2]
};
var defaults = {
x: 2,
y: {
faz: '',
baz: ''
},
z: [1, 2]
};
デフォルトa
とは異なるフィールドのみを保持したい:
a = remove_defaults(a, defaults); // <---- i need this fnc
{
x: 1,
y: {
faz: 'hello'
}
}
目標は、(URLを介して)状態として機能するオブジェクトからデフォルト値を削除することです。状態にはネストされたフィールドを含めることができるため、浅い比較では不十分です。リーフ値はすべてプリミティブ(数値、文字列、ブール)です。
(これはunderscore.js
の_.defaults()
方法の反対に少し似ています)
これを達成するための最良の方法は何ですか?
underscore.js
それが役立つ場合、ソリューションは使用できますが、使用できませんjquery
。