gpt4 book ai didi

javascript - 简单的javascript in_array 递归函数

转载 作者:行者123 更新时间:2023-11-28 02:22:51 26 4
gpt4 key购买 nike

因此,对于 PHP,我有一组方便的函数,可以在多维数组上执行 in_array 操作:

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

任何人都可以发现为什么它不起作用,因为我不明白为什么它不起作用..

谢谢,约翰

最佳答案

这有效..数字和非数字键..doh!

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

关于javascript - 简单的javascript in_array 递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15398095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com