获取js对象键的值

Getting the value of a js object key

本文关键字:对象 js 获取      更新时间:2023-09-26

我需要能够获得对象键的值。当我console.log(event);一个返回的对象时,我得到:

MessageEvent {
    ports: Array[0], 
    data: "{
        "event":"playProgress",
        "data":{
            "seconds":0.419,
            "percent":0.002,
            "duration":177.813
        }
    }"
}

我似乎无法得到数据的价值。用console.log(event.data.percent)百分比。我做错了什么?

看起来event.data实际上是一个字符串,而不是嵌套对象。使用"相当现代化"的浏览器,您可以:

var data = JSON.parse(event.data);
console.log(data.percent);

关于JSON.parse的更多讨论可以在之前的stackerflow回答中看到。

删除第一个数据对象周围的引号

MessageEvent {
    ports: Array[0], 
    data: {
        "event":"playProgress",
        "data":{
            "seconds":0.419,
            "percent":0.002,
            "duration":177.813
        }
    }
}

通过将它们留在创建字符串而不是obj 中

您需要在MessageEvent对象中下一级访问第一个数据对象的子对象数据。为了console.log,您甚至不需要字符串化然后解析对象,就像本例中一样。

试试下面的:

var MessageEvent = {
    ports: Array[0], 
    data: {
        "event":"playProgress",
        "data":{
            "seconds":0.419,
            "percent":2.002,
            "duration":177.813
        }
    }
};

console.log(MessageEvent.data.data.perment);

JSFiddle:http://jsfiddle.net/a_incarnati/em3afkov/