1
Так что для PHP У меня есть удобный набор функций для выполнения в in_array на несколько тусклых массивах:Простого Javascript 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;
}
кто-нибудь может определить, почему она не работает, как я не могу понять, почему он не делает ..
Спасибо, Джон
Какой результат вы получаете? Сообщения об ошибках? Образцы данных, чтобы попытаться вместе с ожидаемыми результатами также были бы полезными. –
Есть ли у вас несколько тестов? – Eineki
Ага, когда ключ не является числовым, терпит неудачу. – John