javascript中未定义的Object.length [重复]
Posted
技术标签:
【中文标题】javascript中未定义的Object.length [重复]【英文标题】:Object.length undefined in javascript [duplicate] 【发布时间】:2015-08-31 22:05:26 【问题描述】:我有一个 javascript 数组对象,例如,
var coordinates =
"a": [
[1, 2],
[8, 9],
[3, 5],
[6, 1]
],
"b": [
[5, 8],
[2, 4],
[6, 8],
[1, 9]
]
;
但coordinates.length
返回未定义。
Fiddle is here.
【问题讨论】:
对象没有长度,数组有 您期望的长度是多少? 2? 8? 16? 【参考方案1】:那是因为coordinates
是Object
而不是Array
,使用for..in
var coordinates =
"a": [
[1, 2],
[8, 9],
[3, 5],
[6, 1]
],
"b": [
[5, 8],
[2, 4],
[6, 8],
[1, 9]
]
;
for (var i in coordinates)
console.log(coordinates[i])
或Object.keys
var coordinates =
"a": [
[1, 2],
[8, 9],
[3, 5],
[6, 1]
],
"b": [
[5, 8],
[2, 4],
[6, 8],
[1, 9]
]
;
var keys = Object.keys(coordinates);
for (var i = 0, len = keys.length; i < len; i++)
console.log(coordinates[keys[i]]);
【讨论】:
【参考方案2】:coordinates
是一个对象。默认情况下,javascript 中的对象没有length
属性。一些对象有一个长度属性:
"a string - length is the number of characters".length
['an array', 'length is the number of elements'].length
(function(a, b) "a function - length is the number of parameters" ).length
您可能正在尝试在您的对象中查找keys
的数量,这可以通过Object.keys()
完成:
var keyCount = Object.keys(coordinates).length;
小心,length
属性可以添加到任何对象:
var confusingObject = length: 100 ;
【讨论】:
我不知道(function()).length
是参数的数量。感谢您的分享。【参考方案3】:
http://jsfiddle.net/3wzb7jen/2/
alert(Object.keys(coordinates).length);
【讨论】:
以上是关于javascript中未定义的Object.length [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Javascript 错误:JupyterLab 中未定义 IPython
QWebFrame addToJavaScriptWindowObject() 对象在 Javascript 中未定义