Как вернуть все объекты в массиве 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)
, вы должны быть в состоянии увидеть, что это такое.