2014-09-27 124 views
-1

JSON除去性能我有一個JSON對象:var myObj = {'test':'' , 'test2': '1'}包含空值

我要上移過JSON對象併除去具有空值「」的所有屬性的方法。

結果: myObj = {'test2': '1'}

+0

您在混合「* proprietary *」和「* property *」 – Bergi 2014-09-27 18:11:29

回答

0

這個功能做ü想要什麼。

var r = function(object){ 
    var _return = {}; 
    for (var index in object){ 
     if(object[index] != ''){ 
     _return[index] = object[index]; 
     } 
    } 
    return _return ; 
}; 
0

試試這個jsfiddle

代碼:

var myObj = {'test':'' , 'test2': '1','test3': '2'} 

var obj = myObj; 
for (var key in obj) { 
    if (obj.hasOwnProperty(key)) { 
    var val = obj[key]; 
     delete obj[key]; 
    console.log(val); 
    } 
} 

for (var key in obj) { 

    var val = obj[key]; 
    alert(val); 
    //console.log(val); 
} 

如果您想了解了解delete檢查這個blog更多信息。

1

這可能是一個可能的解決方案:

var jsonObj = '{"test1":"","test2":"2","test3":"","test4":"4"}'; 
var jsObj = JSON.parse(jsonObj); 

function removeNull(element,index,array){ 
    if (this[element] == ""){ 
     delete this[element]; 
    } 
} 
(Object.getOwnPropertyNames(jsObj)).forEach(removeNull,jsObj); 

檢查此鏈接jsfiddle看到一個工作的例子。

要檢查屬性是否已被刪除或不:

alert(Object.getOwnPropertyNames(jsObj)); 

希望它是非常有用的!

+0

+1區分JSON字符串和JS對象:-) – Bergi 2014-09-28 09:37:35