Tôi có hai đối tượng javascript:giá trị loại bỏ mặc định từ một đối tượng
var a = {
x: 1,
y: {
faz: 'hello',
baz: ''
},
z: [1, 2]
};
var defaults = {
x: 2,
y: {
faz: '',
baz: ''
},
z: [1, 2]
};
Tôi muốn chỉ giữ các lĩnh vực a
có khác nhau từ mặc định:
a = remove_defaults(a, defaults); // <---- i need this fnc
{
x: 1,
y: {
faz: 'hello'
}
}
Mục đích là để loại bỏ các giá trị mặc định từ một đối tượng phục vụ như một trạng thái (thông qua URL). Nhà nước có thể có các lĩnh vực lồng nhau, do đó, một so sánh nông là không đủ. Các giá trị lá là tất cả nguyên thủy (số, chuỗi, bool).
(đây là một chút như trái ngược với underscore.js
's _.defaults()
phương pháp)
cách tốt nhất để đạt được điều này là gì?
Các giải pháp có thể sử dụng underscore.js
nếu giúp, nhưng không có jquery
.
Lặp lại đệ quy qua các thuộc tính và so sánh các giá trị của chúng. Không có phương thức tích hợp sẵn. –