簡體   English   中英

JS:如何在數組中使用一個元素然后擺脫它

[英]JS: How do I use an element in an array and then get rid of it

我正在嘗試制作匹配的紙牌游戲,並試圖“洗牌”我的紙牌。 這是我現在設置的所有內容的方式:

卡的數據是對象

var idea = {
    id: 1,
    english: 'idea',
    pinyin: 'zhǔyì',
    hanyu: '主意'
}

“卡座”是包含所有卡的陣列。

var vocabArray = [idea, getOn, need, getOff, beautiful, scenery, sameAlike, because, help, play];

這就是卡片進入我的HTML的方式。

var cardIndexNum = Math.floor(Math.random() * 10);
var cardReturn = vocabArray[cardIndexNum];
document.getElementById('card1').innerHTML = '<h2>' + cardReturn.hanyu + '<br>' + cardReturn.pinyin + '</h2>';

的HTML

div class='card' id='card1'>
    JAVASCRIPT PUTS CARD INFO AND H TAGS HERE
</div>

現在,有些卡不止一次出現,因為使用卡后它們仍在陣列中。 使用卡后,我嘗試在卡上使用.splice,但是有時我會得到帶有未定義屬性的數組元素。

由於它是一個對象數組 ,因此不能直接在數組上使用拼接來刪除元素。

(此示例使用jQuery

var findAndRemove = function(array,  property, value) {
    $.each(array, function(index, result) {
          if(result[property] == value) {
              array.splice(index, 1);
          }
    }
}

您需要傳遞vocabArray以及idvalue作為函數參數

findAndRemove(vocabArray, "id", 1);

編輯

支持普通的javascript

(未測試)

var findAndRemove = function(array, value) {
    for(var i=0; i < array.length; i++) {
          if(array[i].id == value) {
              array.splice(i, 1);
          }
    }
}

致電者

findAndRemove(vocabArray, 1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM