Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在数组中查找数组并将其删除?_Javascript_Jquery_Arrays_Find_Matching - Fatal编程技术网

Javascript 如何在数组中查找数组并将其删除?

Javascript 如何在数组中查找数组并将其删除?,javascript,jquery,arrays,find,matching,Javascript,Jquery,Arrays,Find,Matching,若我将通过test unique关键字找到匹配的数组,我将删除[test,1] 因此,删除后的arr将为[[demo,2]] 我该怎么做 操场:你可以这样做: var arr = [["test","1"],["demo","2"]]; // $.inArray() ??? // .splice() ??? // $.each() ??? $("code").html(JSON.stringify(arr)); function remove(oldArray, itemName) {

若我将通过test unique关键字找到匹配的数组,我将删除[test,1]

因此,删除后的arr将为[[demo,2]]

我该怎么做


操场:

你可以这样做:

var arr = [["test","1"],["demo","2"]];

// $.inArray() ???
// .splice() ???
// $.each() ???

$("code").html(JSON.stringify(arr));
function remove(oldArray, itemName) {
    var new_array = [];

    for(var i = 0, len = oldArray.length; i < len; i++) {
        var arr = oldArray[i];

        if (arr[0] != itemName) new_array.push(arr);
    }

    return new_array;
}

我在这里做假设,不做任何真正的错误检查,但你明白了。

你可以这样做:

var arr = [["test","1"],["demo","2"]];

// $.inArray() ???
// .splice() ???
// $.each() ???

$("code").html(JSON.stringify(arr));
function remove(oldArray, itemName) {
    var new_array = [];

    for(var i = 0, len = oldArray.length; i < len; i++) {
        var arr = oldArray[i];

        if (arr[0] != itemName) new_array.push(arr);
    }

    return new_array;
}

我在这里做假设,不做任何真正的错误检查,但你明白了。

也许类似于:

var arr = [["test","1"],["demo","2"]];
var new_arr = remove(arr,'test');

也许是这样的:

var arr = [["test","1"],["demo","2"]];
var new_arr = remove(arr,'test');
这是为了:

如果要修改现有阵列而不是创建新阵列,只需将其重新分配:

newArr = arr.filter(function(item) { return item[0] != "test" })
修改器方法(如splice)使代码更难阅读和调试。

这就是它的用途:

如果要修改现有阵列而不是创建新阵列,只需将其重新分配:

newArr = arr.filter(function(item) { return item[0] != "test" })
修改器方法(如splice)使代码更难阅读和调试。

请检查此方法

arr = arr.filter(function(item) { return item[0] != "test" })
检查这个

arr = arr.filter(function(item) { return item[0] != "test" })
注意:这将删除arr中元素为0=test的任何内部数组


注意:这将删除arr中具有0 element=test的任何内部数组

我可以使用remove from arr,而不是创建新数组吗,无论如何,谢谢不,除非修改数组对象。看看Jorge的答案,拼接可能是更好的解决方案。我可以使用从arr移除,而不是创建新阵列吗,无论如何,谢谢不,除非修改数组对象。查看Jorge的答案,splice可能是更好的解决方案。我忘记了splice:我很抱歉,但是@thg435是更好的答案:,无论如何,谢谢:D@l2aelba当然不用担心。我同意过滤器看起来更简单。请注意zeroflagL对该答案的评论。我忘记了拼接:非常抱歉,但@thg435是更好的答案:,无论如何,谢谢:D@l2aelba当然不用担心。我同意过滤器看起来更简单。请注意zeroflagL对该答案的评论。这是一个很好的解决方案,但请注意ECMAScript第5版的要求。从技术上讲,它总是创建一个新的数组。这是一个很好的解决方案,但请注意ECMAScript第5版的要求。从技术上讲,它总是创建一个新阵列。