![](/img/trans.png)
[英]How can I choose a random value of each data attribute together to choose a random cell?
[英]How can I choose an object key at random?
我有以下代码;
namedarray['India']='New Delhi';
namedarray['Australia']='Canberra';
namedarray['Indonasia']='Jakarta';
namedarray['Iran']='Tehrani';
namedarray['Iraq']='Bhagdad';
namedarray['Nijeria']='Abuja';
document.getElementById('question').innerHTML="Q." +namedarray['Nepal']+" is capital for which country";
我想代替尼泊尔,随意从物体中选择一把钥匙。 我怎样才能做到这一点?
尝试这个:
function fetch_random(obj) {
var temp_key, keys = [];
for(temp_key in obj) {
if(obj.hasOwnProperty(temp_key)) {
keys.push(temp_key);
}
}
return obj[keys[Math.floor(Math.random() * keys.length)]];
}
var random_name = fetch_random(namedarray);
document.getElementById('question').innerHTML="Q." + random_name +" is capital for which country"
如果您能够使用库,您可能会发现Lo-Dash JS库对于这种情况有很多非常有用的方法。 在这种情况下,请继续检查sample()。
(注意Lo-Dash约定是命名库对象_。不要忘记在同一页面中检查安装以为项目设置它。)
_.sample([1, 2, 3, 4]);
// → 2
在你的情况下,继续使用:
_.sample(namedarray)
并在上下文中:
document.getElementById('question').innerHTML="Q." +_.sample(namedarray)+" is capital for which country";
另外,您可以使用更简单的表示法来填充数组。
namedarray = {
India : 'New Delhi',
Australia : 'Canberra',
Indonasia : 'Jakarta',
Iran : 'Tehrani',
Iraq : 'Bhagdad',
Nijeria : 'Abuja'
}
我只想使用两个数组作为数据。
var countries = ['India', 'Australia', 'Indonasia', ... ];
var capitols = ['New Delhi', 'Canberra', 'Jakarta', ...];
然后插入到您的文本中:
var index = Math.floor(Math.random() * capitols.length);
document.getElementById('question').innerHTML="Q." +capitols[index]+" is capital for which country";
然后,您可以使用index
变量稍后查找答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.