如何返回javascript数组中的所有对象

时间:2013-06-19 18:24:01

标签: javascript arrays flash flowplayer caption

我有一个由Flowplayer创建并可通过javascript获得的变量。如果我直接将变量写入页面,它只返回'object Object',所以我假设这是一个数组。如果我不知道数组中任何对象的名称,我该如何解析里面的数据呢?

我知道我在这里遗漏了一些非常重要的东西,但我认为我不必从阵列中获取数据而不知道它包含的内容。

注意:

  • 我想要做的是嵌入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;
    }
}

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

谢谢

2 个答案:

答案 0 :(得分:2)

如果你问的是如何迭代数组的内容,你可以用这样的普通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)参数,您应该能够看到它是什么。

答案 1 :(得分: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;
}