Как получить длину из массива с помощью фигурных скобок

0

Я делаю вызов ajax, и ответ, который я получаю, выглядит примерно так:

   Object {
        Monday noon: Array[4], 
        Tuesday morning: Array[2], 
        Friday noon: Array[3], 
        Sunday: Array[1]
    }

Я хотел бы сделать что-то вроде:

    response.length

Но то, что я верну, не undefined

Любая идея, как я могу получить длину внутри массива Object?

Другой вопрос: как я могу добраться до массива Monday noon: Array[4] в Monday noon: Array[4]? Любая помощь или учебная ссылка будут оценены.

  • 0
    Объект не является массивом.
  • 0
    Это не массив, это объектный литерал.
Показать ещё 1 комментарий
Теги:
arrays

3 ответа

7
Лучший ответ

Если вы хотите, чтобы количество ключей в объекте использовалось:

var length = Object.keys(obj).length;

Если вам нужен Object.keys Object.keys:

if (!('keys' in Object.prototype)) {
  Object.keys = function (obj) {
    var arr = [], prop;
    if (util.toType(obj) === 'object') {
      for (prop in obj) {
        if (obj.hasOwnProperty(prop)) {
          arr.push(prop);
        }
      }
    }
    return arr;
  };
}
  • 0
    +1 для Object.keys(obj).length :-)
  • 0
    вопрос - не могли бы вы помочь мне с тем, как добраться до массива в Monday noon: Array[4] или вы могли бы указать мне ссылку, которая могла бы помочь мне с этим: /
Показать ещё 6 комментариев
3

Объекты не имеют свойства length. Вы можете прокручивать свойства и увеличивать счетчик:

var counter = 0;
for (var prop in obj) {
  if(obj.hasOwnProperty(prop)){
    counter++;
  }
}
  • 0
    Ну, нет, если вы не установили length ключа в объекте;)
  • 0
    вопрос - не могли бы вы помочь мне с тем, как добраться до массива в Monday noon: Array[4] или вы могли бы указать мне ссылку, которая могла бы помочь мне с этим: /
0
var len = 0;
for(var prop in response){
    if(response.hasOwnProperty(prop))
        len++;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню