【发布时间】:2019-03-16 14:45:16
【问题描述】:
为了从数组中抓取一个项目,抓取一个项目的值必须是一个整数。像这样:
var myArray = ["apples", "oranges", "sugar", "onions", "steak"];
alert(myArray[2]);//2 is the integer I'm talking about
但是,下面的代码也仍然有效。
var myArray = ["apples", "oranges", "sugar", "onions", "steak"];
alert(myArray[1.5]);//1.5 is the decimal(float) value I'm talking about
为什么系统不自动四舍五入?或者至少在它是小数时给出一个错误?以下代码不返回任何错误:
try {
var myArray = ["apples", "oranges", "sugar", "onions", "steak"];
var healthy = myArray[1.5];
} catch (e) {alert(e);}
为什么系统不将值四舍五入到最接近的整数,或者返回错误?
【问题讨论】:
-
数组是对象并且表现得像对象。使用不是数组定义索引的数字只是访问属性的普通值。
-
@NinaScholz 但是如果你不能在位置“1.5”的数组中有一个值,那么为什么系统不应该对这个值进行四舍五入,或者返回一个错误?
-
问题不在于数组,而是对象。该对象允许使用比数组使用更多的键作为项目索引(必须是正的 32 位(整数)数字)所有其他值,甚至是负数或
1.5都被视为字符串(作为索引)并作为属性访问者。这些属性通过使用数组方法是不可见的,但您可以使用对象方法获取它们。
标签: javascript arrays compiler-errors