简体   繁体   中英

How can I remove null from JSON object with AngularJS?

I'm trying to remove an object from Json Object it works..but it replace it with null..i dont know why, how can i remove the null value from the json..heres the function :

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));
    };

heres the object:

[{"name":"xxx","link":"www.ddd.com","id":0,"$$hashKey":"uiGrid-001Z"},null,null]

You can use filter() , x will be without null's.

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;
}

fiddle

There are multiple ways to delete an object from an array of objects in JavaScript. You don't need AngularJS for that, you can use VanillaJS.

If you just want the nulls filtered you can use

var yourArray =[{"name":"xxx","link":"www.ddd.com","id":0,"$$hashKey":"uiGrid-001Z"},null,null];
     yourArray = yourArray.filter(function(elt){
     return elt != null;
    });

But this loses the original reference to your object.

If you want to keep the reference, Use array.splice().

  yourArray.forEach(function(){ 
      yourArray.splice(yourArray.indexOf(null),1);
  });   

now you will have null less array in yourArray. This actually deletes an object from an array without changing the reference,

delete will replaced the object with undefined

You can filter the array to remove them using 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)); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM