Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays - Fatal编程技术网

检查javascript中的数组中是否已存在元素

检查javascript中的数组中是否已存在元素,javascript,arrays,Javascript,Arrays,我有以下数组 数组=['apple',23,1,20],'orange',12,10,10]] 如何检查上述数组中是否存在10?我尝试使用array.indexOf,但效果不好。有人能帮忙吗 .indexOf()将起作用,问题在于数组变量 数组变量本身包含两个不同的数组 请尝试下面的代码 var array = [ ['apple', 23, 1, 20], ['orange', 12, 10, 10] ]; for (var i = 0; i < array.length

我有以下数组 数组=['apple',23,1,20],'orange',12,10,10]] 如何检查上述数组中是否存在10?我尝试使用array.indexOf,但效果不好。有人能帮忙吗

  • .indexOf()
    将起作用,问题在于
    数组
    变量
  • 数组
    变量本身包含两个不同的数组
  • 请尝试下面的代码

    var array = [
        ['apple', 23, 1, 20],
        ['orange', 12, 10, 10]
    ];
    for (var i = 0; i < array.length; i++) {  //Iterate through arrays in array
        if (array[i].indexOf(10) > -1) {
            alert("Yep");
        } else {
            alert("nope");
        }
    }
    
    var数组=[
    [apple',23,1,20],
    [‘橙色’、12、10、10]
    ];
    对于(var i=0;i-1){
    警惕(“是”);
    }否则{
    警报(“nope”);
    }
    }
    

    选中此项

    问题可能是因为:

    • 您有嵌套数组
    • 并非所有浏览器都支持Array.indexOf
    以下方面应起作用:

    function includes(arrayOfArrays, item) {
        var array, i, j;
        for(i=0; i<arrayOfArrays.length; ++i) {
            array = arrayOfArrays[i];
            for(j=0; j<array.length; ++j) {
                if(array[j] === item) {
                    return true;
                }
            }
        }
        return false;
    }
    
    功能包括(arrayOfArrays,项目){
    var数组,i,j;
    
    对于
    ECMAScript 5
    中的(i=0;i),有两种数组方法
    some
    indexOf

    var search = 10 ;
    
    var found  = a.some( function( v ) {
        return v.indexOf( search ) !== -1 ;
    });
    
    if ( found ) {
        alert( 'exists')
    }
    

    您可以使用以下代码在数组中搜索

    <!DOCTYPE html>
    <html>
    <body>
    
    <script>
    var i,j;
    var toFind = 10;
    var array = new Array();
    array = [['apple',23,1,20],['orange',12,10,10]]
    
    for (i=0;i<array.length;i++)
    {
       for(j=0;j<array[i].length;j++)
       {
           if(array[i][j] == toFind)
           document.write("element found <br/>");
       }
    }
    </script>
    
    </body>
    </html>
    
    
    varⅠ,j;
    var-toFind=10;
    var数组=新数组();
    数组=['apple',23,1,20],'orange',12,10,10]]
    
    对于(i=0;i为什么工作不好?因为你有嵌套数组?+1有趣而且看起来很优雅。数组中的循环很容易,我创建了一个提琴。有一个问题是它支持所有浏览器吗?特别是IE?@user1671639请在IE 9+中检查它,但是对于默认情况下没有的浏览器,有一个选项。@rab,可能想检查v是否是一个在对其调用
    indexOf
    之前的数组。