1

次の配列があります。

c = ['foo', 'bar'];

とオブジェクト

this.foobar = {"foo":{"bar":123}};

私が持っている JSON オブジェクトの配列内の各要素を検索するにはどうすればよいですか。再帰的である必要があります。私がやろうとしていることの配列を含む PHP バージョンは、次のようなものになります。

function in_array_recursive($needle, $haystack) { 
    if(in_array($needle, $haystack)) 
        return true; 
    foreach($haystack as $elem) 
        if(is_array($elem) && in_array_recursive($needle, $elem) 
            return true; 
    return false; 
}  

ただし、必要なことは同じですが、JavaScript では、配列の代わりに JSON を使用する必要があります。

4

1 に答える 1

1

次のようにして、needle に一致するキーを探します。

var foobar = {
    "foo": {
        "whooop" : {
        "bar" : 123
        }
    }
};

function isInArray(needle, haystack) { 
    var foundNeedle = false;

    for (var key in haystack) {

        if (isInArray(needle, haystack[key])) {
            foundNeedle = true;
        }

        if (key == needle) {
            foundNeedle = true
        }
    }

    return foundNeedle;    
}  

var message = "is bar in foobar? result is... " +  isInArray("bar", foobar));
于 2013-09-24T09:36:09.937 に答える