tengo dos objetos de javascript:valores por defecto Sacar de un objeto
var a = {
x: 1,
y: {
faz: 'hello',
baz: ''
},
z: [1, 2]
};
var defaults = {
x: 2,
y: {
faz: '',
baz: ''
},
z: [1, 2]
};
quiero sólo para mantener los campos de a
que son diferente del defecto:
a = remove_defaults(a, defaults); // <---- i need this fnc
{
x: 1,
y: {
faz: 'hello'
}
}
El objetivo es para eliminar valores predeterminados de un objeto que sirve como estado (a través de URL). El estado puede tener campos anidados, por lo que una comparación superficial no es suficiente. Los valores de las hojas son todos primitivos (número, cadena, bool).
(esto es un poco como lo contrario de underscore.js
's _.defaults()
método)
¿Cuál es la mejor manera de lograr esto?
La solución se puede utilizar underscore.js
si eso ayuda, pero sin jquery
.
itere recursivamente sobre las propiedades y compare sus valores. No hay un método incorporado. –