列出两种不同的内容,例如一副标有“等级”的牌;的“suit"
Listing the contents of two different e.g. a deck of cards with "rank" of "suit"
我正在尝试在javaScript中制作一副标准的纸牌。我将使用两个数组,一个用于排列,另一个用于花色。我想运行一个简单的程序,将这些数组的内容列出-所以我会得到"梅花a,梅花2,梅花3…"等
到目前为止,我得到的要么是一个等级列表,例如"a, 2, 3…",然后是一个花色列表"梅花,方块,红心...."。
这是我的代码
var output = document.getElementById("card");
var x = ["King ", "Queen ", "Jack ", "10 ", "9 ", "8 ", "7 ", "6 ", "5 ", "4 ", "3 ", "2 ","Ace "];
var y = ["Clubs ", "Diamonds ", "Hearts ", "Spades "];
//cycle through card ranks
for (i=0; i < x.length; i++){
output.innerHTML += x[i];
}
//cycle through card suits
for (j=0; j < y.length; j++) {
output.innerHTML += x[i]
}
function suitedList(){
for (j=0; j < y.length; j++){
for (i=0; i < x.length; i++){
return x[i] + "of " + y[j]
}
}
}
output.innerHTML = suitedList()
谁能告诉我我哪里错了? 您需要在从函数返回字符串之前将它们连接起来。类似以下语句:
var output = document.getElementById("card");
var x = ["King ", "Queen ", "Jack ", "10 ", "9 ", "8 ", "7 ", "6 ", "5 ", "4 ", "3 ", "2 ", "Ace "];
var y = ["Clubs ", "Diamonds ", "Hearts ", "Spades "];
//cycle through card ranks
for (i = 0; i < x.length; i++) {
output.innerHTML += x[i];
}
output.innerHTML += '<br/>';
//cycle through card suits
for (j = 0; j < y.length; j++) {
output.innerHTML += x[i];
}
function suitedList() {
// will hold all the concatenated values
var outString = '';
for (j = 0; j < y.length; j++) {
//console.log(outString);
for (i = 0; i < x.length; i++) {
// append suit/card to variable
outString += x[i] + 'of ' + y[j];
// adding a new line for easier reading (remove if unwanted)
outString += '<br/>';
}
}
// return concatenated string with all values
return outString;
}
// override existing content of 'output'
output.innerHTML = suitedList();
<div id="card"></div>
您可能希望您的suitedList
看起来像这样:
output = document.getElementById("card");
var x = ["King ", "Queen ", "Jack ", "10 ", "9 ", "8 ", "7 ", "6 ", "5 ", "4 ", "3 ", "2 ","Ace "];
var y = ["Clubs ", "Diamonds ", "Hearts ", "Spades "];
function suitedList(){
var list = "";
for (j=0; j < y.length; j++){
for (i=0; i < x.length; i++){
list += x[i] + "of " + y[j] + "<br />";
}
}
return list;
}
output.innerHTML = suitedList()
<div id="card"></div>
当然,积累可以通过许多其他方式完成,但关键是-您在第一次迭代(King of Clubs
)中从suitedList
返回并使用此值覆盖整个innerHTML
。
你有output.innerHTML = suitedList()
,而不是output.innerHTML += suitedList()
,它会将列表附加到块的当前值-如果你只想列出卡片,这是可以的,但如果你还想要出现较早的列表,则不可以。
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- Javascript返回值只在循环中返回一次
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- Jquery FadeIn FadeOut 只工作一次
- 如何获取不属于我项目的上一页的URL
- Javascript html每点击一次就会更改url
- 键入最后一位数字后自动提交
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- fluxxor向一个flux实例添加一组以上的操作
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 如何给玩家一副牌
- 打印出一副卡片
- 如何使用 2 个数组在角度 js 中洗一副牌
- 在JavaScript中生成一副纸牌
- 列出两种不同的内容,例如一副标有“等级”的牌;的“suit"