我写了一个非常简单的JS程序,它没有给出预期的输出。

JSFiddle链接:JsFiddle link

var p = {
        11735: [{
            d: 46.0,
            z: 06810
        }, {
            d: 30.6,
            z: 07047
        }, {
            d: 36.5,
            z: 07026
        }, {
            d: 36.9,
            z: 07032
        }, {
            d: 43.4,
            z: 07083
        }, {
            d: 32.9,
            z: 07094
        }, {
            d: 35.8,
            z: 07002
        }, {
            d: 39.6,
            z: 06460
        }, {
            d: 43.2,
            z: 06484
        }, {
            d: 15.0,
            z: 11581
        }, {
            d: 48.1,
            z: 07753
        }, {
            d: 37.9,
            z: 06614
        }, {
            d: 27.2,
            z: 10601
        }, {
            d: 0.0,
            z: 11735
        }]
    };
alert(p[11735][1].z);


预期输出应为07047,但实际输出为3623

我不知道为什么会这样。请帮助我理解这一点。

最佳答案

由于070470开头,因此被解释为以8为底的数字。

07047 (base 8) === 3623 (base 10)

http://www.unitconversion.org/numbers/base-8-to-base-10-conversion.html

如果希望07047为以10为底的数字7047,则只需删除开头的0

关于javascript - 从Javascript中的Object访问值时获得意外值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28750440/

10-13 01:08