Javascript:如何通过顶级索引删除二级数组?

时间:2013-11-17 18:25:36

标签: javascript arrays multidimensional-array splice

我在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相同的问题。

谢谢!

3 个答案:

答案 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;
}

FIDDLE

称之为var new_array = deleteByIndex(my_array, 24);

答案 2 :(得分:1)