vuex中filter的使用 && 快速判斷一個數是否在一個數組中


vue中filter的使用

    computed: mapState({
      items: state => state.items.filter(function (value, index, arr) {
        return  index < 5
      })
    }),

 

如上所示,對於vuex,我們在使用mapState獲取state時, 可以使用filter來過濾其中的元素,在filter的回調函數中接受三個參數,第一個是value,即每一個元素的值; 第二個是index, 即每一個元素所在的index, 第三個參數是arr,即這個數組本身。 在上面的例子中,我們最終獲取到了 index < 5 的01234四個元素組成的數組,顯然, filter得到的還是數組。

 

 

又比如: 我們可以這么使用filter,在computed中:

     cartItems: function (state) {
        var that = this;
        return state.contentItems.filter(function (value, index) {
          return that.filterIndex(state.numbers).indexOf(index) !== (-1);
        });
      },

其中: 我們先用了filter,然后用自定義了一個函數,再判斷一個元素是否在一個數組之中。

 

 

 

 

 

快速判斷一個數是否在一個數組中

 

有下面幾種方法可以實現:

[54, 45, 85, 6].indexOf(6) !== -1

上述表達式如果返回的不是-1, 就說明滿足,比如上面的例子返回的時3所以屬於。

這是判斷一個數是否在一個數組中最快的方法。

 

 

二、

  使用[5, 2, 63, 8].includes(5), 如果返回true,則表明包含,但是includes在一些瀏覽器中並不支持,所以不能使用。

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM