我有一个回复对象。
我正在尝试使用以下代码检查它的长度:
var count = Object.keys(response).length;
然而,它理想地显示计数17,它应该显示1。
我要回来"电子邮件"对象作为回应。
对此有何看法?
答案 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
在您的示例中,该函数计算响应字符串的长度,而不是对象的键。
Object.keys()方法返回给定对象自己的可枚举属性的数组,其顺序与for ... in循环提供的顺序相同(不同之处在于for-in循环枚举原型链中的属性。)
因为字符串是可枚举的Object.keys
会返回它的长度,它(错误地?)使用loop
的平面将每个字符计为一个键。