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

資訊專欄INFORMATION COLUMN

數(shù)組循環(huán)刪除的問題

villainhr / 1567人閱讀

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

問題描述

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

錯誤實(shí)現(xiàn)

最初的實(shí)現(xiàn),foreach循環(huán),發(fā)現(xiàn)就是不對。

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

每次刪除時,都是根據(jù)key進(jìn)行刪除的,但是刪除之后,數(shù)組的長度就會發(fā)生變化,導(dǎo)致下次再根據(jù)key去刪除,發(fā)現(xiàn)長度變了,我們想刪除的元素的位置也變了。

解決方案

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/96616.html

相關(guān)文章

  • Java中如何優(yōu)雅地刪除List中元素

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

    kelvinlee 評論0 收藏0
  • 細(xì)說JS數(shù)組

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

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

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

    qpal 評論0 收藏0
  • JS 數(shù)組循環(huán)遍歷方法對比

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

    BlackFlagBin 評論0 收藏0
  • for循環(huán)和for in在遍歷數(shù)組區(qū)別

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

    wangbinke 評論0 收藏0

發(fā)表評論

0條評論

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