Как вернуть все объекты в массиве JavaScript

У меня есть переменная, которая создается Flowplayer и доступна через JavaScript. Если я записываю переменную на страницу напрямую, она просто возвращает объектный объект, поэтому я предполагаю, что это массив. Если я не знаю имен каких-либо объектов внутри массива, как я могу разобрать данные внутри?

Я знаю, что мне здесь не хватает чего-то действительно фундаментального, но я не думаю, что мне когда-либо приходилось получать данные из массива, не зная, что он содержит.

Заметки:

  • То, что я пытаюсь сделать, это получить данные заголовка onCuePoint, встроенные в видеопоток RTMP
  • .valueOf() возвращает то же самое
  • Вот код, который я использую, который возвращает 'Object Object':

streamCallbacks: ['onFI'],
clip:

{
    live:true,          
    provider: 'rtmp',
    autoPlay: true,
    url:'test1',
    onFI:function(clip, info)
    {
        document.getElementById("onFI").innerHTML += "Data: " + info;
    }
}

Спасибо

2 ответа

Решение

Вам нужно перебрать свой массив и получить результаты один за другим, замените функцию onFI на это:

onFI:function(clip, info)
{
    var data = "";

    // For each value in the array
    for (var i = 0; i < info.length; i++) 
    {
         // Add it to the data string (each record will be separated by a space)
         data += info[i] + ' ';
    }

    document.getElementById("onFI").innerHTML += "Data: " + data;
}

Если вы спрашиваете, как вы перебираете содержимое массива, вы можете сделать это в простом javascript, например:

var arr = [1,2,3];

for (var i = 0; i < arr.length; i++) {
    // arr[i] is each item of the array
    console.log(arr[i]);
}

То, что что-то имеет тип Object, не обязательно означает, что это массив. Это также может быть простой объект с различными свойствами. Если вы посмотрите на info аргумент в отладчике или с console.log(info), вы должны быть в состоянии увидеть, что это такое.

Другие вопросы по тегам