javascript - 查找 Javascript 对象长度

标签 javascript

我尝试使用下面的代码查找report_data(object)键的长度..但由于某些原因它产生值3。

a={report_freq: "daily", report_item_num: 2, report_num: 39, report_data: "{}"}
Object {report_freq: "daily", report_item_num: 2, report_num: 39, report_data: "{}"}
Object.getOwnPropertyNames(a.report_data).length
3

为了更清楚,我有图像。

enter image description here

最佳答案

a.report_data 是一个具有三个属性的字符串:

  • 0,代表第一个字符("{")。

  • 1,代表第二个字符("}")。

  • length,表示字符串的长度(2)。

如果您来自其他语言,那么 01 是属性,这有点违反直觉,但在 Javascript 数组元素中,就像所有其他属性一样是属性,并且可以使用数组语法(又名“bracket notation ”)访问“常规”属性:

// "array elements"
a.report_data[0]        === "{";
a.report_data[1]        === "}";
// or...
a.report_data["0"]      === "{";
a.report_data["1"]      === "}";

// "normal" properties
a.report_data.length    === 2;
// or...
a.report_data["length"] === 2;

这些都是属性名称,因此,当您请求字符串的属性名称数组时,您会得到:

["0", "1", "length"]

关于javascript - 查找 Javascript 对象长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41576454/

相关文章:

javascript - 添加新Fieldset时如何保留之前输入的内容

javascript - 如何使用 Angular 访问嵌套的 JSON 数组数据,并按数组参数过滤?

javascript - 在组件单元测试中模拟 Vuex 模块 Action

c# - div 通过后面的代码重定向

javascript - 如何在WordPress菜单中添加 "onclick"事件

javascript - HammerJS 在拖动后触发点击

javascript - 停止函数、数组和整数检查

javascript - ev.target.id 不返回元素 id

javascript - 我可以使用 javascript 发送电子邮件吗

javascript - 如何使用HTTP协议(protocol)使用IE9下载文件