Я хочу создать простой массив в JavaScript, который будет использоваться позже в игре с ничьей. Массив будет генерировать строковые представления значений.jpg.
В настоящее время существуют два массива, которые инициализируют массив так, что формат будет
Example: 1h.jpg -- Ace
2h.jpg -- two
h - сердце s - пространство c - клуб d - алмаз
Когда я нажимаю кнопку загрузки, хочу, чтобы массив загружался, а затем печатался на веб-странице с помощью кнопки на нем, но в настоящее время он удаляет текущую веб-страницу. Я хочу добавить его на оригинальную веб-страницу. В какой-то момент я буду использовать Canvas для отображения карт. Вторая часть кода - это то, как я хотел бы, чтобы оператор if загружал строки h, d, c, s в строку.
Мне действительно хотелось бы, чтобы оператор if в своем собственном методе имел одну строку кода, которая бы установила индекс массива со значением и затем вернулась к методу loadArray. Я не знаком с JavaScript в том, как он передает массивы взад и вперед между методами. Я думаю, что этот массив в какой-то момент должен быть глобальным в JavaScript, так что все методы, которые его используют, будут иметь доступ.
Код:
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="loadMyImageArray()">Load Image Array</button>
<script>
function loadMyImageArray() {
var index = 1;
var img = new Array();
for (suit=0;suit<4;suit++)
{
for (card=1;card<=13;card++)
{
imgArray[index] = card.toString() + suit.toString() + ".jpg";
document.writeln("Your Card is: " + img[index].toString());
index++;
}
}
}
</script>
</body>
</html>
Код: (что я действительно хочу, чтобы выражение IF выглядело)
for (card=1;card<=13;card++)
{
document.writeln("Card: " +card);
if(suit==1) {
document.writeln("IF 1");
imgArray[index] = card.toString() + 'h' + ".jpg";
} else if (suit==2) {
document.writeln("IF 2");
imgArray[index] = card.toString() + 's' + ".jpg";
} else if (suit==3) {
document.writeln("IF 3");
imgArray[index] = card.toString() + 'd' + ".jpg";
} else if (suit==4) {
document.writeln("IF 4");
imgArray[index] = card.toString() + 'c' + ".jpg";
}
Новый код: (Это то, что у меня есть для нового кода, еще не добавляю элементы на исходную страницу)
function loadMyImageArray() {
var index = 1;
var imgArray = new Array();
var suits = ["h","s","d","c"];
for (suit=0;suit<4;suit++)
{
for (card=1;card<=13;card++)
{
imgArray[index] = card + suits[suit] + ".jpg";
document.writeln("Your Card is: " + imgArray[index].toString());
index++;
}
}
}
Помимо вашей imgArray
которую указывает JP, и используя writeln
которого вы не должны делать, я думаю, что вы пытаетесь сделать, это сопоставить целое число suit с письмом для создания вашего имени файла. В этом случае это легко. Просто используйте массив!
var suits = ["h","s","d","c"];
for (suit=0;suit<4;suit++)
{
for (card=1;card<=13;card++)
{
imgArray[index++] = card + suits[suit] + ".jpg";
}
}
Если вы пытаетесь использовать writeln
только для целей отладки, вместо этого используйте console.log
который будет эхом на вашу консоль отладки (во многих браузерах f12
открывает консоль).
Здесь сценарий, который, я думаю, делает то, что вы пытаетесь сделать:
imgArray
не определен. Это должно быть img
Кроме того, используйте Chrome и откройте Dev Tools. Эта синтаксическая ошибка появилась бы на консоли.
Предполагая, что вы просто хотите построить массив, который выглядит так: ["1h.jpg", "2h.jpg"... "12d.jpg", "13d.jpg"]
Затем вы можете использовать эту функцию:
function loadMyImageArray() {
var index = 0;
var suits = ['h', 's', 'c', 'd'];
var imgArray = new Array(52);
for (suit=0;suit<4;suit++)
{
for (card=1;card<=13;card++)
{
imgArray[index] = card.toString() + suits[suit] + ".jpg";
index++;
}
}
return imgArray
}
В моей консоли я получаю:
loadMyImageArray()
["1h.jpg", "2h.jpg", "3h.jpg", "4h.jpg", "5h.jpg", "6h.jpg", "7h.jpg", "8h.jpg", "9h.jpg", "10h.jpg", "11h.jpg", "12h.jpg", "13h.jpg", "1s.jpg", "2s.jpg", "3s.jpg", "4s.jpg", "5s.jpg", "6s.jpg", "7s.jpg", "8s.jpg", "9s.jpg", "10s.jpg", "11s.jpg", "12s.jpg", "13s.jpg", "1c.jpg", "2c.jpg", "3c.jpg", "4c.jpg", "5c.jpg", "6c.jpg", "7c.jpg", "8c.jpg", "9c.jpg", "10c.jpg", "11c.jpg", "12c.jpg", "13c.jpg", "1d.jpg", "2d.jpg", "3d.jpg", "4d.jpg", "5d.jpg", "6d.jpg", "7d.jpg", "8d.jpg", "9d.jpg", "10d.jpg", "11d.jpg", "12d.jpg", "13d.jpg"]
writeln
, он перезапишет вашу текущую страницу, потому что он автоматически вызываетdocument.open
и очищает ваш загруженный закрытый документ. ИспользуйтеcreateElement
иappendChild
для добавления узлов в DOM.