我有以下代码:
var items = [item1, item2, item3];
var index = Math.random() * items.length;
我希望声明
items[index]
从我的数组中返回一个随机项,但是它总是返回undefined
。如何获得由index
变量索引的项目?
答案 0 :(得分:4)
您需要一个整数索引,因为Array
由正整数组成。
如果使用非整数值,则该值将转换为字符串(这也适用于整数值)并用作property accessor。在这种情况下,例如1.22
,该值在数组中不存在,您得到undefined
。
顺便说一句,数组是Javascript中的对象,因此所有值都可以用作数组的键。
var items = ['item1', 'item2', 'item3'];
var index = Math.floor(Math.random() * items.length);
console.log(items[index]);
答案 1 :(得分:2)
您应该floor
使用数字作为下标:
var index = Math.floor(Math.random() * items.length);
这样,您将获得index
的整数值,而不是浮点数。
答案 2 :(得分:0)
使用Math.round()向上舍入索引
var index = Math.round(Math.random() * (items.length - 1));
否则,它可能指向数组中未包含的类似2.3的东西