奇怪的javascript对象问题

Jud*_*udy 2 javascript object

这是一个简单的js测试脚本

<script>
var testarray = new Array();
testarray['length'] = "1,2,3,4,5";
alert(testarray['length']);
</script>
Run Code Online (Sandbox Code Playgroud)

如果您运行它,您将收到以下错误消息:

必须为数组长度指定有限的正数

知道是什么原因以及如何克服它?

注意:如果您将"长度"更改为其他任何内容,它将显示对象的内容没有问题.

Sea*_*oyd 10

Array.length

Array.length是对象的内置属性Array.

您只能将其设置为整数值:

length属性的值是一个整数,带有正号,值小于2到32次幂(2 32).

您可以设置length属性以随时截断数组.通过更改其长度属性来扩展数组时,实际元素的数量不会增加; 例如,如果在当前为2时将长度设置为3,则该数组仍仅包含2个元素.

参考:


Javascript对象

我的猜测是你需要一个Object,而不是一个Array:

var testobj = {};
testobj['length'] = "1,2,3,4,5";
alert(testobj['length']);
Run Code Online (Sandbox Code Playgroud)

当然有一些替代语法选择:

第一行是以下的快捷方式:

var testobj = new Object();
Run Code Online (Sandbox Code Playgroud)

方括号表示法可以用点表示法替换:

testobj.length = "1,2,3,4,5";
alert(testobj.length);
Run Code Online (Sandbox Code Playgroud)

(方括号和圆点也可以混合使用)