vue中filter的使用

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

如上所示,对于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) !== (-);
});
},

其中: 我们先用了filter,然后用自定义了一个函数,再判断一个元素是否在一个数组之中。

快速判断一个数是否在一个数组中

有下面几种方法可以实现:

[, , , ].indexOf() !== -

上述表达式如果返回的不是-1, 就说明满足,比如上面的例子返回的时3所以属于。

这是判断一个数是否在一个数组中最快的方法。

二、

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

 

vuex中filter的使用 && 快速判断一个数是否在一个数组中的更多相关文章

  1. Java数组操作方法收集(快速判断某个值在这个数组中)

    Java数组操作最高效的方式是循环取值,如果转换成集合那么就会分配内存,效率不如前者,但是方法多,需要在性能调优上去权衡.切记:数组是数组,集合是集合. 下面是收集最常用的数组转成集合的操作方法: i ...

  2. python中如何不区分大小写的判断一个元素是否在一个列表中

    python中判断某一个元素是否在一个列表中,可以使用关键字in 和 not in. 示例如下: 如果需要输出相应的信息,可以搭配使用if语句,这里不赘述. --------------------- ...

  3. JavaScript 中 如何判断一个元素是否在一个数组中

    <script type="text/javascript"> var arrList=['12','qw','q','v','d','t']; console.log ...

  4. js 判断一个数是否在数组中

    ,,,,,,,); ; ; i < arr.length; i++) { ){ console.log(i); flag=; break; } } ){ console.log("66 ...

  5. php判断一个值是否在一个数组中,区分大小写-也可以判断是否在键中

    function in_array_case($value,$array){ return in_array(strtolower($value),array_map('strtolower',$ar ...

  6. 腾讯面试题 腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?

    腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?  这个题目已经有一段时间了,但是腾讯现在还在用来面试.腾讯第一次面 ...

  7. JS 判断一个字符串是否包含在一个数组中

    var arr = ["白色", "黑色", "红色", "粉色"]; var sel = "黑色" ...

  8. js判断一个元素是否在数组中

    js判断一个元素是否在数组中 var arr = ['a','s','d','f']; console.info(isInArray(arr,'a'));//循环的方式 function isInAr ...

  9. 【JS】【6】判断一个元素是否在数组中

    摘要: 有三种方式: 1,jquery的inArray方法 2,数组的indexOf方法 3,普通的for循环方法 正文: 1,jquery的inArray方法 /** * @param {Objec ...

随机推荐

  1. LibreOJ 6281 数列分块入门 5(分块区间开方区间求和)

    题解:区间开方emmm,这马上让我想起了当时写线段树的时候,很显然,对于一个在2^31次方以内的数,开方7-8次就差不多变成一了,所以我们对于每次开方,如果块中的所有数都为一了,那么开方也没有必要了. ...

  2. 匿名函数和lamda表达式

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. webform Response的一些成员

    1. Response.BufferOutPut,关闭缓冲区. 2. Response.Flush,一次性把缓冲区的内容释放出来. 3. Response.Clear,清空缓冲区. 4. Respon ...

  4. ulua

    unity窗口 lua -> Gen LuaWrap + Binder 生成Wrap文件 此类脚本是对Unity中常用的组件进行二次包装 Lua运行后 会把Wrap文件加载到Lua运行环境中 使 ...

  5. go与c互相调用

    此例子来自于go源码中,借此来和大家分享一下两者如何调用,网上很多文章语言不详,也没有一个完整的测试例子 目录结构 首先src 目录下有 testcgowin目录下: 这里的_obj目录是cgo生成的 ...

  6. LoadRunner--获取请求的返回结果函数

    注:内容来自网络 Action(){ web_set_max_html_param_len("262144"); // 默认最大长度为256 web_reg_save_param( ...

  7. activeMq延迟消息队列

    Long delay = 30 * 1000L; jmsTemplate.send(type.getValue(),new MessageCreator() { @Override public Me ...

  8. PyCharm4.5.4注册码

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 name : newasp == ...

  9. CF138D World of Darkraft

    $ \color{#0066ff}{ 题目描述 }$ n*m的格子,每个格子有字符'L','R',X',初始可以选择所有格子. 当选了 'L'的格子时,当前格子左下右上这条线上所有点不能选; 当选了 ...

  10. [CQOI2006]凸多边形(半平面交)

    很明显是一道半平面交的题. 先说一下半平面交的步骤: 1.用点向法(点+向量)表示直线 2.极角排序,若极角相同,按相对位置排序. 3.去重,极角相同的保留更优的 4.枚举边维护双端队列 5.求答案 ...