[英]Remove element from array JavaScript
我正在做這個小游戲,您可以在其中聽到數組中的隨機單詞,然后單擊卡片(“container__item”)。 如果單詞與卡片匹配,則 card("container__item") 變得幾乎透明,並且游戲繼續進行,直到沒有更多單詞為止。 我有這段代碼,但如果它與卡匹配,我不知道如何從數組中刪除音頻。 我
let gameContainer = document.querySelector('.game__container');
let audios = document.querySelectorAll('.audio');
let containerItem = document.querySelectorAll('.container__item')
let randomAudio;
function randomInteger(min, max) {
let rand = min + Math.random() * (max + 1 - min);
return Math.floor(rand);
}
gameContainer.addEventListener('click', playGame);
function playGame() {
const arr = Array.from(audios);
randomAudio = arr[randomInteger(0, arr.length - 1)];
randomAudio.play();
containerItem.forEach((a)=>a.addEventListener('click',guessCard));
function guessCard(){
if(randomAudio == this.querySelector('.audio')){
this.style.opacity = '0.3';
}
else{
audioFail.play();
}
}
}
正如評論中所指出的,您可以使用arr.splice(index, 1);
從數組中刪除一個元素。 . 第二個參數說明您要刪除的數組元素的數量,在這種情況下只有一個。 那么,這對你有什么影響? 首先,將 randomAudio 的索引放入一個變量中。 接下來使用splice
從arr
中刪除該索引 function playGame()
將如下所示:
function playGame() {
var arr = Array.from(audios);
var index = randomInteger(0, arr.length - 1);
randomAudio = arr[index];
randomAudio.play();
containerItem.forEach((a)=>a.addEventListener('click',guessCard));
function guessCard() {
if(randomAudio == this.querySelector('.audio')) {
this.style.opacity = '0.3';
arr.splice(index,1);
} else{
audioFail.play();
}
}
}
您可以使用不同的方法和技術從 JavaScript arrays 中刪除元素:
array.pop()
- 從數組的末尾刪除array.shift()
- 從數組的開頭刪除array.splice(0, 2)
- 從特定的數組索引中刪除(這里從索引 position 0 開始,刪除兩個元素)array.filter(function(){...})
- 允許您以編程方式從數組中刪除元素
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.