我有两个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
。
递归迭代属性并比较它们的值。没有内置的方法。 –