我想創建一個通過刪除jQuery對象和空對象,字符串來清除JSON對象的函數。
CODE:
從JSON對象中刪除jQuery和空對象
JSON.clean = function (object) {
/// <summary>Removes jQuery and null values from json object.</summary>
var filter = function (obj, doArrays) {
$.each(obj, function (key, value) {
if (value === "" || value === null) {
delete obj[key];
} else if (Object.prototype.toString.call(value) === '[object Object]') {
filter(value);
} else if (doArrays || Array.isArray(value)) {
obj[key] = filterArray(value);
}
});
return obj;
};
var filterArray = function (obj) {
var result = [];
for (var i = 0; i < obj.length; i++) {
result.push(filter(obj[i], false));
}
return result;
};
var result;
if ($.isArray(object)) {
result = [];
for (var i = 0; i < object.length; i++) {
result.push(filter(object[i]));
}
} else {
result = filter(object);
}
return result;
};
問題:
試圖清理JSON對象內陣列時的代碼崩潰。
我知道改變這樣的數組是錯誤的,但這純粹是爲了在數組中使用JSON對象。
我對這個問題的建議是等到數組的清洗完成。
我不知道如何在Javascript中實現這一點,所以我希望你們中的任何人都可以幫忙!
我用這個來源的主要思路:
How do I remove all null and empty string values from a json object?
是什麼* 「的代碼崩潰」 *是什麼意思?瀏覽器崩潰了嗎?代碼是否突然以錯誤結束? – 2014-09-29 17:56:21
...看起來好像你在處理JavaScript對象,而不是JSON,因爲你不能用JSON而不是Array對象來表示特定的對象類型。 – 2014-09-29 17:57:08
當我運行這個代碼使用jQuery 2.1.0我得到的錯誤是在JavaScript庫中未定義,這發生在試圖調用清理數組的遞歸函數時。 – 2014-09-29 21:14:58