我在javascript中有一个嵌套数组。顶级具有数字索引,第二级数组包含各种数据。我希望能够使用顶级索引从数组中删除元素。
var my_array = [];
my_array[12] = ['cheese', 'egg', 'ham'];
my_array[24] = ['balloon', 'frog'];
my_array[33] = ['chicken', 'goose'];
如何删除my_array [24]?我尝试过使用$ .inArray拼接,但inArray将索引返回-1。我不想使用indexOf,因为它的浏览器限制 - 我认为它会给我与inArray相同的问题。
谢谢!
答案 0 :(得分:1)
如果想要从主数组索引24中删除frog
已知的索引1
myArray[24].splice(1,1);
如果想在任何地方搜索frog
并删除父级。
var term='frog';
my_array=$.grep(my_array,function(element,i){
return $.inArray( term, element) !=-1;
}
答案 1 :(得分:1)
创建一个函数:
function deleteByIndex(arr, index) {
var new_arr = [];
for (var i=0; i<arr.length; i++) {
if (arr[i] && i!=index) {
new_arr[i] = arr[i];
}
}
return new_arr;
}
称之为var new_array = deleteByIndex(my_array, 24);
答案 2 :(得分:1)
my_array.splice(24, 1);
将删除index = 24的项目。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice