国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數組循環刪除的問題

villainhr / 1575人閱讀

摘要:問題描述簡單的需求,要刪除數組中不符合條件的元素。如果學科存在數組過濾接收一個函數,根據該函數返回為決定該元素保留還是刪除兼容請選擇項,默認保留保留器具類別的學科與當前學科相同的項

問題描述

簡單的需求,要刪除數組中不符合條件的元素。

錯誤實現

最初的實現,foreach循環,發現就是不對。

// 如果學科存在id
if (discipline.id) {
    // foreach類別
    angular.forEach(result, function(value, key) {
        // 如果該類別有對應學科(考慮到“請選擇的情況下”會報從undefined上獲取id)
        // 并且該學科類別id不等于傳入學科id
        if (value.discipline && !angular.equals(value.discipline.id, discipline.id)) {
            // 移除不符合要求的元素
            result.splice(key, 1);
        }
    });
}

每次刪除時,都是根據key進行刪除的,但是刪除之后,數組的長度就會發生變化,導致下次再根據key去刪除,發現長度變了,我們想刪除的元素的位置也變了。

解決方案

Java中,我們使用iterator方法拿到其迭代對象,然后對其進行修改。

// 如果學科存在id
if (discipline.id) {
    /**
     * 數組過濾
     * 接收一個函數,根據該函數返回為true/false
     * 決定該元素保留還是刪除
     */
    result = result.filter(function(value) {
        // 兼容請選擇項,默認保留
        if (!value.discipline) {
            return true;
        }
        // 保留器具類別的學科id與當前學科id相同的項
        return angular.equals(value.discipline.id, discipline.id);
    });
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/96616.html

相關文章

  • Java中如何優雅地刪除List中元素

    摘要:刪除元素后,立即跳出,則正常退出,但不能向后繼續循環了刪除后立馬終端循環,會正常跳出,但代價是不能繼續向后循環了使用迭代器使用迭代器可,正確無誤的刪除,代碼簡潔優雅,推薦使用使用迭代器可,正確無誤的刪除注意這里時而不是 在工作中的許多場景下,我們都會使用到List這個數據結構,那么同樣的有很多場景下需要刪除List中的某一個元素或某幾個元素,那么我們該如何正確無誤地刪除List中的元素...

    kelvinlee 評論0 收藏0
  • 細說JS數組

    摘要:數組元素的讀寫使用訪問數組元素時,將索引轉換為字符串,然后將其作為屬性名一樣使用。第一個參數應該在前只展開一層數組元素不變,返回注意,只拼接第一層結構。 此乃犀牛書(第七章 數組)讀書筆記,又結合了ES6中數組的擴展部分做的知識梳理。精華部分就是手工繪制的兩張數組總結圖了。靈活運用數組的各種方法是基本功,是基本功,是基本功,重要的事情說三遍。好了,正文從下面開始~ 數組的基本概念 什么...

    starsfun 評論0 收藏0
  • Java013-集合

    摘要:集合框架重點理解用于存儲數據的容器。集合容器在不斷向上抽取過程中。出現了集合體系。,刪除將集合中的元素全刪除,清空集合。刪除集合中指定的對象。注意刪除成功,集合的長度會改變。作用用于取集合中的元素。是集合特有的迭代器。是單列集合是雙列集合 集合框架(重點理解):用于存儲數據的容器。特點:1:對象封裝數據,對象多了也需要存儲。集合用于存儲對象。2:對象的個數確定可以使用數組,但是不確定怎...

    qpal 評論0 收藏0
  • JS 數組循環遍歷方法對比

    摘要:循環方法方法不改變原數組方法會給原數組中的每個元素都按順序調用一次函數。篩選出過濾出數組中符合條件的項組成新數組代碼方法方法為數組中的每個元素執行一次函數,直到它找到一個使返回表示可轉換為布爾值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 發展至今已經發展出多種數組的循環遍...

    BlackFlagBin 評論0 收藏0
  • for循環和for in在遍歷數組區別

    摘要:舉個例子,如果你的數組中有一個可枚舉屬性,循環將額外執行一次,遍歷到名為的索引。就連數組原型鏈上的屬性都能被訪問到。某些情況下,可能按照隨機順序遍歷數組元素。 困惑 在練習數組操作的時候,希望實現刪除數組中特定元素(比如刪除字符1)的功能很容易地就想到了利用for循環和splice方法 for (let i = 0; i < hobbies.length; i++) { ...

    wangbinke 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<