user8059179
user8059179

Reputation:

how to delete item from JSON object with angularjs

I want to delete the items which have {"lat":0,"lng":0} in this json object, here's the object :

[{
    "lat": 35.77118697154732,
    "lng": -5.809084439749561
}, {
    "lat": 35.77118697154732,
    "lng": -5.809084439749562
}, {
    "lat": 0,
    "lng": 0
}, {
    "lat": 0,
    "lng": 0
}, {
    "lat": 0,
    "lng": 0
}]

I tried this:

storyboard.deleteLngAndLatEqualZeo = function(data) {
    for (var i = 0; i < data.length; i++) {
        var currentData = data[i];
        if (currentData.lat == 0 && currentData.lng == 0) {
            data.splice(i, 1);
        }
    }
    console.log(JSON.stringify(data));
}

It doesn't work. Can someone help?

Upvotes: 2

Views: 938

Answers (3)

d9ngle
d9ngle

Reputation: 1469

data = 
[{
    "lat": 35.77118697154732,
    "lng": -5.809084439749561
}, {
    "lat": 35.77118697154732,
    "lng": -5.809084439749562
}, {
    "lat": 0,
    "lng": 0
}, {
    "lat": 0,
    "lng": 0
}, {
    "lat": 0,
    "lng": 0
}];

deleteLngAndLatEqualZeo = function(data) {
    for (var i = 0; i < data.length; i++) {
        var currentData = data[i];
        if (currentData.lat == 0 && currentData.lng == 0) {
            data.splice(i, 1);
            --i;
        }
    }
    console.log(JSON.stringify(data));
}

deleteLngAndLatEqualZeo(data);

Upvotes: 0

jose
jose

Reputation: 1054

You can use slice, Checkout my answer

for (var i = data.length - 1; i > -1; i--) {
    var latData=data[i].lat;
    var lngData=data[i].lng;
    if (put condition) {
        data.splice(i, 1);
    }
}

Upvotes: 2

abhishekkannojia
abhishekkannojia

Reputation: 2856

You can use Array.prototype.filter() function like this:

var data = [{
    "lat": 35.77118697154732,
    "lng": -5.809084439749561
}, {
    "lat": 35.77118697154732,
    "lng": -5.809084439749562
}, {
    "lat": 0,
    "lng": 0
}, {
    "lat": 0,
    "lng": 0
}, {
    "lat": 0,
    "lng": 0
}];

var result = data.filter(function(d) {
  return !(d.lat === 0 && d.lng === 0);
});

console.log(result);

Upvotes: 1

Related Questions