我想在javascript中从2D数组中删除一个完整的行,其中有一个特定的id。 我搜索过,我找不到任何例子。我怎样才能做到这一点?
我有一个像这样的对象/数组......
[
{"id":"1","title":"Sample Event 1\n","start":"Nov 27 2011 10:30:00 GMT+0000 (GMT)","end":"Nov 27 2011 11:30:00 GMT+0000 (GMT)","allDay":false},
{"id":"2","title":"Sample Event 2","start":"Nov 28 2011 12:30:00 GMT+0000 (GMT)","end":"Dec 01 2011 12:30:00 GMT+0000 (GMT)","allDay":true},
{"id":"3","title":"Sample Event 3\n","start":"Nov 27 2011 11:30:00 GMT+0000 (GMT)","end":"Nov 27 2011 12:30:00 GMT+0000 (GMT)","allDay":false}
]
我的数据是通过php和json_encoded从mysql数据库中提取的,如下所示......
var eventObject = <?php echo json_encode($events);?>;
我的问题是,如果我想删除一个完整的行,例如id == 1,例如我怎么能实现这个?
我尝试过使用remove属性但是失败了。
我也尝试过以下方式使用拼接
var eventLocation = eventObject.indexOf(EventId);
eventObject.splice(11,1);
但无济于事。请有人帮忙吗?
答案 0 :(得分:2)
yourarray.filter(function(obj) { return obj.id != "1"; })
可以在现代浏览器中使用
答案 1 :(得分:2)
您可以遍历它们,检查ID,如果您发现它,请使用splice
。
for(var i = 0; i < eventObject.length; i++) {
if (eventObject[i].id == "1") {
eventObject.splice(i, 1);
break;
}
}
console.log(eventObject);
答案 2 :(得分:0)
您正在控制$events
对象。你为什么不像
eventObject = {
"1": {"title":"Sample Event 1\n","start":"Nov 27 2011 10:30:00 GMT+0000 (GMT)","end":"Nov 27 2011 11:30:00 GMT+0000 (GMT)","allDay":false},
"2": {"title":"Sample Event 2","start":"Nov 28 2011 12:30:00 GMT+0000 (GMT)","end":"Dec 01 2011 12:30:00 GMT+0000 (GMT)","allDay":true},
"3": {"title":"Sample Event 3\n","start":"Nov 27 2011 11:30:00 GMT+0000 (GMT)","end":"Nov 27 2011 12:30:00 GMT+0000 (GMT)","allDay":false}
};
而不是eventArray
?有了它,您可以轻松使用delete eventObject[toRemove]
。或者您是否会遇到排序顺序的问题?