JavaScript查找对象的长度

时间:2016-05-03 18:13:53

标签: javascript

我有一个回复对象。

我正在尝试使用以下代码检查它的长度:

 var count = Object.keys(response).length;

然而,它理想地显示计数17,它应该显示1。

我要回来"电子邮件"对象作为回应。

enter image description here

对此有何看法?

3 个答案:

答案 0 :(得分:2)

首先,您只需执行以下操作即可获得对象的长度(此处为response):

var count = response.length;

response实际上不是示例中的对象,而是字符串。所以length返回字符串中的字符数,这里是17。

答案 1 :(得分:1)

我不确定你的目的是什么,但是响应是17个字符,你要求的是响应的长度。它本质上是array个字符。

为了清楚起见。

var response = "'test1@gmail.com'";
var count = Object.keys(response).length;

.keys返回对象的可枚举属性,对象response是一个字符串,或char的“系列”。

然后,对象的长度为17

您可能正在寻找,这可能会有效

Object.keys(response.Data).length;

<强>已更新 这是OP正在寻找的答案。无法发表评论。

var response = {response: "'email@email.com'"};


var count = Object.keys(response).length;
console.log(count);

答案 2 :(得分:1)

如果您放置任何其他长度不同的字符串,您将得到不同的结果

Object.keys("hello").length
>> 5

在您的示例中,该函数计算响应字符串的长度,而不是对象的键。

From MDN

  

Object.keys()方法返回给定对象自己的可枚举属性的数组,其顺序与for ... in循环提供的顺序相同(不同之处在于for-in循环枚举原型链中的属性。)

因为字符串是可枚举的Object.keys会返回它的长度,它(错误地?)使用loop的平面将每个字符计为一个键。