我正在尝试创建一个锯齿状数组,向其添加大量技术术语和定义,然后打印出随机术语及其相应的定义。
这是我的代码,它接近工作,但不完全在那里。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>GLOSSARY</title>
</head>
<body>
<script>
window.onload = function(){
function randomRange(l,h){
var range = (h-l);
var random = Math.floor(Math.random()*range);
if (random === 0){random+=1;}
return l+random;
}
document.write("<h1> GLOSSARY </h1>");
document.body.style.backgroundColor = "#AA0000";
var a = [[],[]];
a.push('hobo', 'person who drinks and drifts');
a.push('google', 'Search Company');
a.push('Stack Overflow', 'smart dudes who answer stuff');
var r = randomRange(0, a.length);
document.writeln(a[r],[r]);
};
</script>
</body>
</html>
答案 0 :(得分:1)
为什么不创建一个对象数组?例如:
var a = [];
a.push({ name: 'hobo', desc: 'person who drinks and drifts' });
a.push({ name: 'google', desc: 'Search Company' });
a.push({ name: 'Stack Overflow', desc: 'smart dudes who answer stuff' });
然后,您可以将第3项的描述引用为a[2].desc
,例如。
答案 1 :(得分:0)
如果你看一下数组的内容,我想你会发现a.push没有按照你的想法做到。
你可能意味着这个
var a = [];
a.push(['hobo', 'person who drinkd and drifts'])
答案 2 :(得分:0)
其他人给了你很好的回复。我会使用散列(关联数组)并使用第一个术语作为键,即。 “google”,“hobo”并以这种方式工作..但鉴于你目前的结构,你可以通过这样做来解决它。
var a = [];
a.push(['hobo', 'person who drinks and drifts']);
a.push(['google', 'Search Company']);
a.push(['Stack Overflow', 'smart dudes who answer stuff']);
var r = randomRange(0, a.length);
document.writeln(a[r][0],a[r][1]);