尝试从计算创建数组时数组长度无效
Invalid array length when trying to create an array from calculation
var map = {
mapSize: 100, // the size of a side
data: new Array(this.mapSize * this.mapSize),
getIndex: function(x, y) {
return x * this.mapSize + y;
},
getCoords: function(index) {
var x = Math.floor(index/this.mapSize);
return {
x: x,
y: index - (x * this.mapSize)
}
}
};
这段代码给了我范围错误:数组长度无效。
但是,当没有计算时,如下所示:
data: new Array(this.mapSize),
它有效。
你能解释一下为什么会这样吗?
为什么会这样
因为当您尝试读取其mapSize
属性时map
对象尚未构造。所以this.mapSize
给你undefined
.结果undefined * unedefined
产生NaN
。并且不能使用NaN
长度创建数组。只需尝试new Array(NaN)
,您将看到相同的错误。
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 数组在手动写入时有效,但从文本文件加载时无效
- 尝试从计算创建数组时数组长度无效
- 从数组中删除项无效
- 是什么导致我的绘制数组调用无效操作
- 无效的调用对象 IE 11 长度的 XML 数组 (getElementsByTagName)
- 必须返回有效的 ReactComponent.您可能返回了未定义的数组或其他一些无效对象
- 为什么文字数组有效,而编码数组无效
- 为什么推送对此cookie数组无效
- 访问数组索引0有效,1无效
- 数组缓冲区IE10-类型化的数组构造函数参数无效
- 为什么数组中的数字有效,而数组中的字符串无效
- 错误:无法使未添加到数组中的子文档无效
- 在Chrome下,Base-64字符数组异常的无效长度
- 未捕获的RangeError: Chrome版本36.0.1985.5 dev -m中无效的数组长度
- RangeError:无效的数组缓冲区长度
- 使用正则表达式替换数组中的匹配元素:无效字符
- Javascript数组:为什么这是无效的
- 多个数据源导致'无效的数组宽度!的错误