Reputation:
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
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
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
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