我有两个 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
's_.defaults()
方法的反面)
实现这一目标的最佳方法是什么?
如果有帮助,可以使用该解决方案underscore.js
,但没有jquery
。