我有一个数组:
var menu_items = [];
我在其中推送两个元素:
menu_items.push({
order: menu_items.length + 1, // value= 1
title: 'Label',
url: '',
IsSystemMenuItem: true
});
menu_items.push({
order: menu_items.length + 1, // value =2
title: 'grid',
url: '',
IsSystemMenuItem: true
});
现在我要删除第二项(即顺序:menu_items.length + 1,// value = 2和title:'grid')
我该怎么删除这个项目?
答案 0 :(得分:3)
使用delete删除项目:
delete menu_items[1];
但请注意,它会在您的阵列中留下一个洞。
如果您想要一个没有洞的数组,请使用splice:
menu_items.splice(1, 1);
如果你想要的是根据属性删除元素,那么你可以使用filter:
menu_items = menu_items.filter(function(v) { return v.title!='grid' });
如果您想要更兼容,并且在使用jQuery时,您也可以使用grep:
menu_items = $.grep(menu_items, function(v) { return v.title!='grid' });
答案 1 :(得分:1)
您可以使用splice()
。
menu_items.splice(1, 1);
第一个参数是您要删除的元素的索引。第二个参数是您要删除的元素数。
答案 2 :(得分:0)
您可以使用splice()方法。
答案 3 :(得分:0)
使用此代码
delete Your_items[1];
答案 4 :(得分:0)
如果您想按标题删除项目,我建议您执行以下操作:
function deleteItemByTitle(array, title){
for(var i = 0, l = array.length; i < l; i++){ // Loop through the array,
if(array[i].title == title){ // If the correct element is found,
array.splice(i, 1); // Remove the found element.
break;
}
}
}
然后,您可以调用该函数:
deleteItemByTitle(myArray, "grid");
将title
替换为order
,如果您希望将其作为要搜索的媒体资源。
答案 5 :(得分:0)
如果要根据订单号或类似名称删除。这是如何完成的基本示例:
function DeleteFromArray(orderId)
{
for ( var i = 0; i < menu_items.length; i++)
{
if(menu_items[i].order === orderId) return menu_items.splice(i, 1);
}
}
当然menu_items[i].order === orderId
可以替换为menu_items[i].title === orderId
之类的内容,然后只需将orderId
更改为orderTitle
或者您喜欢的任何浮动广告。