Как проверить, является ли элемент ответа JSON массивом? - PullRequest
22 голосов
/ 04 июня 2009

Я получаю следующий ответ JSON

    {
    "timetables":[
        {"id":87,"content":"B","language":"English","code":"en"},                                                
        {"id":87,"content":"a","language":"Castellano","code":"es"}],
    "id":6,
    "address":"C/Maestro José"
    }

Я бы хотел добиться следующей функциональности псевдокода

for(var i in json) {            
    if(json[i]  is Array) {
    // Iterate the array and do stuff
    } else {
    // Do another thing
    }
}

Есть идеи?

Ответы [ 3 ]

46 голосов
/ 04 июня 2009

Существуют и другие методы, но, насколько мне известно, это самый надежный:

function isArray(what) {
    return Object.prototype.toString.call(what) === '[object Array]';
}

Итак, чтобы применить его к вашему коду:

for(var i in json) {                    
    if(isArray(json[i])) {
    // Iterate the array and do stuff
    } else {
    // Do another thing
    }
}
8 голосов
/ 21 сентября 2017
4 голосов
/ 04 июня 2009
function isArray(ob) {
  return ob.constructor === Array;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...