【问题标题】:JSON array get length using jQuery or javascriptJSON数组使用jQuery或javascript获取长度
【发布时间】:2013-12-28 05:22:07
【问题描述】:

我知道有很多类似的问题。但其中任何一个都不适合我。

我有一个json数组,整个结构是这样的:

我想要得到的数组是这样的:

那个json数组的结构是:

我想得到那个 json 数组的长度。在上图中,它是 4。 到目前为止我尝试的是:

console.log( $( data.studentMockBeanMap ).size() );
console.log( $(data.studentMockBeanMap ).length );.

两者都返回 1

我也试试这个:

var x = JSON.stringify(data.studentMockBeanMap);
console.log( x.length );

返回 2257,它还返回所有 json 对象的总和。

我怎样才能只有我在上面框起来的图像的尺寸?

【问题讨论】:

  • 这不是一个数组,而是一个具有多个属性的对象。这个答案可能对您有所帮助:stackoverflow.com/questions/126100/…
  • @EfrainReyes 我明白了。除了您提供的链接之外,还有其他方法吗?那里的解决方案不支持像FF3这样的低版本浏览器,这是一个相当大的代价。
  • 标记的答案特别适用于较新的浏览器,但是您是否检查了该链接上的其他答案以及相应的评论线程?
  • 顺便说一下,也请查看此链接,该方法可能适用于旧版浏览器:stackoverflow.com/a/11369971/2563028
  • 我会查看您提供的链接。感谢您的帮助。

标签: jquery arrays json


【解决方案1】:

这与 Object.keys(obj).length 的想法相同,但没有浏览器兼容性问题(我认为)。

怎么样:

var obj = {
    yo: {
         a: 'foo',
         b: 'bar'
    }
    hi: {
        c: 'hello',
        d: 'world',
        e: 'json'
    }
}

var arr = [], len;

for(key in obj) {
    arr.push(key);
}

len = arr.length;

console.log(len) //2

var arr = [], len;

for(key in obj.hi) {
    arr.push(key);
}

len = arr.length;

console.log(len) //3

或者,在你的情况下

var arr = [], len;

for(key in studentMockBeanMap) {
    arr.push(key);
} 

len = arr.length;

console.log(len); //4

【讨论】:

  • 啊,是的。这就是我刚才所做的。谢谢你的帮助。
【解决方案2】:

你也可以使用 lodash 库(它有一个 size 函数)。

http://lodash.com/docs#size

_.size({red: 'red', blue: 'blue'}) // 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    相关资源
    最近更新 更多