php页面中 为什么javascript JSON.parse返回的object长度未定义?

vartemp=JSON.parse('<?phpechojson_encode($arra)?>');alert(temp.length);--------------... var temp=JSON.parse('<?php echo json_encode($arra) ?>');
alert(temp.length);

--------------------------这里弹窗显示未定义,我在chrome中调试显示如下:
var temp=JSON.parse('{"1":"1","2":"3","3":"3","4":"1","5":"4","6":"3"}');

--------------------------我的本意是想把这串字符转换成一个数组,请问如何解决?
展开
 我来答
136775565
2017-03-05 · TA获得超过1113个赞
知道小有建树答主
回答量:866
采纳率:88%
帮助的人:834万
展开全部

js中Object 没有提供length属性,只能通过循环对象属性来创建一个新数组

    var temp = JSON.parse('{"1":"1","2":"3","3":"3","4":"1","5":"4","6":"3"}');
    var tempArr = [];
    for (var i in temp) {
        tempArr[i] = temp[i]
    }
    alert(tempArr.length)

然后,重点是你PHP的$arra是值对数组吗?如果键名没用的话你直接用array_values就行了

    <?php $arra = ["1" => 1, "2" => 3, "3" => 3, "4" => 1, "5" => 4, "6" => 3] ?>
    var temp = JSON.parse('<?php echo json_encode(array_values($arra)) ?>');
    alert(temp.length)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式