问题不仅在于数字对象键的可靠性,还在于数字变量是数字还是字符串(强制)?正如JSelser所说。
我想知道这是如何实现的:
var name = {1:"Bob",2:"June",3:"Catty"};
var number = String(Math.floor(Math.random()*Object.getOwnPropertyNames(name).length)+1);
console.log(name[number]);
左右:
var name = {"1":"Bob","2":"June","3":"Catty"};
var number = String(Math.floor(Math.random()*Object.getOwnPropertyNames(name).length)+1);
console.log(name[number]);
左右:
var name = {"1":"Bob","2":"June","3":"Catty"};
var number = Math.floor(Math.random()*Object.getOwnPropertyNames(name).length)+1;
console.log(name[number]);
注意第一个键没有引号,数字变量等同于字符串或数字,但在所有的中,结果都没问题。