我尝试使用下面的代码查找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
为了更清楚,我有图像。
最佳答案
a.report_data
是一个具有三个属性的字符串:
0
,代表第一个字符("{"
)。1
,代表第二个字符("}"
)。和
length
,表示字符串的长度(2
)。
如果您来自其他语言,那么 0
和 1
是属性,这有点违反直觉,但在 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/