JavaScript - 我想将两条信息分配给一个数组 - 我是否使用多维数组
JavaScript - I want to assign two pieces of info to an Array - do I use multidimensional arrays?
假设我有 3 张图片。当用户单击网站上的按钮时,我希望显示其中一个随机图像,并且我希望<h1>Title</h1>
标签更改为该图像的标题。
我还在运行一个脚本,该脚本在使用数组之前将其随机化,以便我可以遍历数组而不显示任何以前显示的图像。
这是我从这个网站中提取的随机播放函数,它随机化数组
<script>function shuffle(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;};
以下是图片:
var myArray = ['sample1.jpg','sample2.jpg','sample3.jpg'];
newArray = shuffle(myArray);
var i = 0;
然后我有一个实际在网站上发布图像的功能:
function test(){
document.getElementById("picture").style.background = "url('/images/"+myArray[i]+"') no-repeat center center";
document.getElementById("title").innerHTML = "(Here is the code that should change the title to the respective image)";
i++;}
当然还有调用随机图像的按钮
<img src="images/button.png" id="testButton" onclick="test()">
现在,图像上方有一个图像标题。在同一个test()函数中,我希望图像的标题发生变化。我可以将图像的标题放在代码中的什么位置?我应该使用多维数组吗?像这样:
var myArray = [['sample1.jpg']['Title 1'],['sample2.jpg']['Title 2'],['sample3.jpg']['Title 3'];
像字典一样,用图像名称键控一个简单的、单独的对象来存储标题怎么样?
var titles = {
'sample1.jpg': 'Title 1',
'sample2.jpg': 'Title 2',
'sample3.jpg': 'Title 3'
}
这样,您就可以保持一切简单,并为每个对象提供自己的用途:数组提供图像的随机列表,title 对象提供关联的数据(如果需要,您可以简单地添加到其中)。
你可以这样称呼它:
var image = myArray[i]; // according to your code
var title = titles[image];
所以:
function test() {
var image = myArray[i];
document.getElementById("picture").style.background = "url('/images/"+image+"') no-repeat center center";
document.getElementById("title").innerHTML = titles[image];
i++;
}
请注意,下面的 null 答案也是完全有效的。您的选择。
您可以像这样创建一个多维数组(数组数组):
var images = [['a.jpg', 'title a'], ['b.jpg', 'title b']];
或使用对象数组:
var images = [{url:'a.jpg',title:'title a'}, {url:'b.jpg',title:'title b'}];
我建议对象。它更易于阅读,因为您可以访问某些属性。
images[0][1]
与。
images[0].title
我坚持使用多维数组。这是新代码。感谢您对 Null 和其他所有人的帮助。
var myArray = [['sample1.jpg','Title 1'],['sample2.jpg', 'Title 2'],['sample3.jpg', 'Title 3']];
newArray = shuffle(myArray);
var i = 0;
function test(){
document.getElementById("picture").style.background = "url('/images/"+myArray[i][0]+"') no-repeat center center";
document.getElementById("title").innerHTML = myArray[i][1];
i++;
}
相关文章:
- 查找对象数组是否包含其中一个标记的最快方法
- 检查数组是否包含
- 确定数组是否包含偶数
- 在 JavaScript 中连接字符串或数组是否更快
- 检查对象数组是否具有所有必需的键
- 检查数组是否包含指定的对象
- 在通过套接字发送到客户端之前压缩中等大小的javascript数组是否值得
- 检查数组是否有空元素
- 检查输入框的数组是否为空
- 如何检查JSON数组是否等于
- 检查数组是否已定义并且具有长度
- 检查数组是否包含特定对象
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- 如何检查子集数组是否包含超集数组之一
- 检查对象数组是否包含布尔值true/false
- 检查数组是否在MongoDB文档中包含帖子ID
- 检查数组是否包含允许或不允许的字符
- 检查 javascript 数组是否不仅包含空值
- 在循环时修改数组是否安全
- 列表/数组是否有效 JSON