简体   繁体   English

如何使用angularjs从JSON对象中删除项目

[英]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 : 我想删除在这个json对象中具有{"lat":0,"lng":0} ,这是对象:

[{
    "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? 有人可以帮忙吗?

You can use slice , Checkout my answer 您可以使用slice ,结帐我的答案

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

You can use Array.prototype.filter() function like this: 您可以像这样使用Array.prototype.filter()函数:

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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