我正在尝试从它工作的Json对象中删除一个对象..但是它用null替换它。我不知道为什么,我怎样才能从json中移除空值...函数:
company.deleteExternalLinkFromGrid = function (row, matricule) {
// console.log('Inside of deleteModal, code = ' + code);
//$scope.sitting= {};
console.log(matricule);
//console.log(JSON.stringify(linkJsonObj));
delete linkJsonObj[matricule];
console.log(JSON.stringify(linkJsonObj));
};
继承人的对象:
[{ “名称”: “XXX”, “链接”: “www.ddd.com”, “ID”:0, “$$ hashKey”: “uiGrid-001Z”},NULL,NULL]
答案 0 :(得分:2)
您可以使用filter()
,x
将无null。
function test()
{
var x =[{"name":"xxx","link":"www.ddd.com","id":0,"$$hashKey":"uiGrid-001Z"},null,null].filter(isNotNull);
alert(JSON.stringify(x));
}
function isNotNull(value) {
return value != null;
}
答案 1 :(得分:0)
有多种方法可以从JavaScript中的对象数组中删除对象。你不需要AngularJS,你可以使用VanillaJS。
如果您只想过滤掉空值,可以使用
var yourArray =[{"name":"xxx","link":"www.ddd.com","id":0,"$$hashKey":"uiGrid-001Z"},null,null];
yourArray = yourArray.filter(function(elt){
return elt != null;
});
但是这会失去对你对象的原始引用。
如果要保留引用,请使用array.splice()。
yourArray.forEach(function(){
yourArray.splice(yourArray.indexOf(null),1);
});
现在你将在yourArray中使用null less数组。这实际上是在不更改引用的情况下从数组中删除对象,
答案 2 :(得分:-1)
delete
会将对象替换为undefined
您可以使用Array#filter()
var array = [{
"name": "xxx",
"link": "www.ddd.com",
"id": 0,
"$$hashKey": "uiGid-001Z"
}, {
"name": "xx",
"link": "www.dddcom",
"id": 1,
"$$hashey": "uiGrid-0029"
}, {
"name": "xxx",
"link": "www.ddd.com",
"id": 2
}];
delete array[1];
array = array.filter(a=>a);
console.log(JSON.stringify(array));