Saya memiliki dua fungsi:

function drawCard(player) {

let imageCard = document.createElement('img');
let imageId = getRandomCard();
player['cards'].push(imageId);
imageCard.src = "static/image/PNG/"+ imageId + ".png";
return [imageCard, imageId];}

Dan

function showCard(card, id, player) {
document.querySelector(player['div']).appendChild(card);
upgradeScore(id,player);}

Saya mencoba meneruskan nilai imageCard dan imageId yang dikembalikan dari fungsi drawCard() dengan memanggil fungsi drawCard() dalam argumen showCard() tetapi saya tidak dapat menemukan cara untuk melakukannya. Apakah ada cara yang bagus dan rapi untuk melakukannya?

-2
sadurator 4 Juli 2021, 22:59

3 jawaban

Jawaban Terbaik

Iya!

Anda dapat menggunakan destrukturisasi array untuk meneruskan nilai kembalian drawCard sebagai argumen untuk showCard.

let player =  [...]
// ^ Assuming that you have declared the player variable elsewhere

showCard(...drawCard(player), player)
// The two values returned by the drawCard function are taken out of the array and passed in as arguments

// Equivalent to showCard(drawCard(player[0]), drawCard(player[1), player)

Lebih lanjut tentang merusak tugas

1
lejlun 4 Juli 2021, 20:08

Sepertinya semuanya tergantung pada variabel pemain Anda.

Anda dapat menggunakannya sebagai satu-satunya argumen dan kemudian memanggil metode drawCard. Hancurkan array yang dikembalikan menjadi dua variabel dan gunakan sesuai keinginan.

function showCard(player) {
let [card,id] = drawCard(player);
document.querySelector(player['div']).appendChild(card);
upgradeScore(id,player);}

0
Tushar Shahi 4 Juli 2021, 20:08

Harap bantuan ini karena permintaan Anda agak tidak jelas.

function drawCard(player) {
    let imageCard = document.createElement('img');
    let imageId = getRandomCard();
    player['cards'].push(imageId);
    imageCard.src = "static/image/PNG/"+ imageId + ".png";
    return [imageCard, imageId];
}

function showCard(card, id, player) {
    let imageCardAndImageId = drawCard(player);
    document.querySelector(player['div']).appendChild(imageCardAndImageId[0]);
    upgradeScore(imageCardAndImageId[1],player);
}
0
Maroine Mlis 4 Juli 2021, 20:11