Javascript中的Array.length无法正常工作

时间:2015-09-22 11:04:25

标签: javascript angularjs

我试图从数组获取长度,但它工作异常。这是我的目标,

console.log(user.ownAccount.length);

我希望获得ownAccount的长度,我通过记录来测试,

{{1}}

显示 64 !!!,它没有显示 2 。 我不明白我做错了什么。

感谢您的帮助。

5 个答案:

答案 0 :(得分:2)

它不是一个数组,你需要先解析它才能得到一个数组:

var ownAc=JSON.parse(user.ownAccount)
console.log(ownAc.length);

答案 1 :(得分:1)

使用简单方法Object.keys(obj),引用https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

在您的情况下,答案是Object.keys(user.ownAccount).length

var user = {
  "username":"testuser update",
  "email":"user001@mail.co.th",
  "name":"user001",
  "ownAccount":[
    {"id":2,"name":"Demo Account2"},
    {"id":1,"name":"Demo Account"}
  ]
};

console.log(Object.keys(user.ownAccount).length);
alert(Object.keys(user.ownAccount).length);

答案 2 :(得分:0)

array定义为string,您应该删除双引号。 换句话说,将"[替换为[,将]"替换为]

答案 3 :(得分:0)

双引号问题

<强>&#34; [     {&#34; id&#34;:2,&#34; name&#34;:&#34; Demo Account2&#34;},     {&#34; id&#34;:1,&#34; name&#34;:&#34;模拟账户&#34;}   的]&#34;

删除双引号的解决方案(如果您的数组是手动格式)

试试这段代码

  [
    {"id":2,"name":"Demo Account2"},
    {"id":1,"name":"Demo Account"}
  ]

解决方案(如果此阵列来自任何第三方)

使用您的json数据

尝试此代码
var user = {
  "username":"testuser update",
  "email":"user001@mail.co.th",
  "name":"user001",
  "ownAccount":"[
    {"id":2,"name":"Demo Account2"},
    {"id":1,"name":"Demo Account"}
  ]"
}

user.ownAccount = JSON.parse(user.ownAccount)
console.log(user.ownAccount.length);

答案 4 :(得分:-1)

试试这个:

var user = {
  username:"testuser update",
  email:"user001@mail.co.th",
  name:"user001",
  ownAccount:[
    {id:2,name:"Demo Account2"},
    {id:1,name:"Demo Account"}
  ]
}