天蓝色移动服务中的阵列长度问题

时间:2013-12-06 11:56:03

标签: javascript azure express azure-mobile-services

我将数组发送到服务

[
    {
        "toppingid": "ABB934CB-EAB7-4863-B832-7F533DA08E2F",
        "toppingname": "Default",
        "toppingprice": "0.000000"
    }
]

当我console.log时,它显示如上。我在下面执行console.log

   toppinglistforCart = [];
   toppinglistforCart = request.body.toppinglist

   console.log(toppinglistforCart);

但是当我尝试toppinglistforCart.length时,它会因为一些特殊的原因而返回132。

如果我console.log(toppinglistforCart[0]),则返回[非常奇怪。其他人是否遇到过同样的问题?

感谢您的时间

1 个答案:

答案 0 :(得分:1)

您的toppinglistforCart变量似乎是一个字符串,长度为132.(它在较旧的IE中不起作用,但是)JS允许您使用topplinglistforCart[0]语法访问字符串中的单个字符,类似于数组上相同语法如何访问单个数组项。

您需要解析字符串的JSON内容以创建对象:

toppinglistforCart = JSON.parse(request.body.toppinglist);

另请注意您的第一行:

toppinglistforCart = [];

...根本不需要 - 它将toppinglistforCart设置为一个新的空数组,然后下一行将toppinglistforCart设置为其他内容,以便抛弃空数组。