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在一些瀏覽器中並不支持,所以不能使用。