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_Recursion - Fatal编程技术网

数组递归函数中的简单javascript

数组递归函数中的简单javascript,javascript,arrays,recursion,Javascript,Arrays,Recursion,因此,对于PHP,我有一组方便的函数,用于在多维数组上执行in_数组: function in_array_r($needle, $haystack, $strict = false) { foreach ($haystack as $item) { if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $

因此,对于PHP,我有一组方便的函数,用于在多维数组上执行in_数组:

function in_array_r($needle, $haystack, $strict = false) {
    foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
            return true;
        }
    }
    return false;
}
然而,我试图用javascript重新创建一个类似的脚本,但我似乎无法让它正常工作。。这就是我所拥有的:

function in_array_r(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle){
            return true;
        }
        if(typeof haystack[i]=='object'){
            if(in_array_r(needle, haystack[i])){
                return true;
            }
        } 
    }   
    return false;
}
数组中的函数(针、草垛){ var length=haystack.length; 对于(变量i=0;i 有人能看出它为什么不起作用吗,因为我看不出它为什么不起作用

谢谢,
约翰这很管用。。数字键和非数字键。。啊

function in_array_r(needle, haystack) {
    var length = haystack.length;
    for(var key in haystack) {
        if(haystack[key] == needle){
            return true;
        }
        if(typeof haystack[key]=='object'){
            if(in_array_r(needle, haystack[key])){
                return true;
            }
        } 
    }
    return false;
}

这很有效。。数字键和非数字键。。啊

function in_array_r(needle, haystack) {
    var length = haystack.length;
    for(var key in haystack) {
        if(haystack[key] == needle){
            return true;
        }
        if(typeof haystack[key]=='object'){
            if(in_array_r(needle, haystack[key])){
                return true;
            }
        } 
    }
    return false;
}

你得到了什么结果?错误消息?要尝试的样本数据以及预期结果也会很有用。你有一些测试用例吗?啊哈。。如果键不是数字,则会失败。您得到的结果是什么?错误消息?要尝试的样本数据以及预期结果也会很有用。你有一些测试用例吗?啊哈。。如果密钥不是数字,则会失败。。