有一个数组filter问题想请教下大佬
javascript吧
全部回复
仅看楼主
level 3
芝士雪豹😷
楼主
如图中…我想让一个数组对象根据条件数组返回相应的结果。但是为什么==的时候可以实现,但是!==的时候返回了整个数组呢?没起到过滤效果
2019年06月17日 04点06分
1
level 3
芝士雪豹😷
楼主
救命啊
2019年06月17日 04点06分
2
level 3
没人要的goat
用!=试试
2019年06月17日 05点06分
3
芝士雪豹😷
额 也没起效果
2019年06月17日 05点06分
没人要的goat
@芝士雪豹😷
我正在试FILTER这个方法我不熟,这种功能我一般用其他方法做,是不是实现。满足条件的条目打印或显示?
2019年06月17日 05点06分
芝士雪豹😷
@没人要的goat
对 打印对对应数组
2019年06月17日 05点06分
没人要的goat
@芝士雪豹😷
我用的INDEXOF()你可以尝试一下 如果需要我发给你
2019年06月17日 05点06分
level 4
shine白梦一场
因为filter函数是根据传递的函数参数对目标数组每一项进行筛选,如果条件符合就返回TRUE,反之则返回FALSE。所以你如果要筛选跟条件相反的项,必须在循环里判断,如果条件不符合,返回false。在循环外层要返回TRUE即可达到筛选目的。
2019年06月18日 03点06分
7
level 13
maxwheel
用==应该就行。7楼说的对,filter里的函数只返回对和错就行。里边可以写成item=>tiaojian.includes(item.name)
2019年06月19日 00点06分
8
level 8
_leac
因为, 要遍历的是 ['3', '5'] 总有一个不等于 item.name
改成 arr.filter(item => !~tiaojian.indexOf(item.name)) 就能得到正确结果
2019年06月19日 01点06分
9
level 1
忘了我吧c
写的什么玩意 ,好的循环可读性很重要, filter会返回 里面的函数返回true的项组成的数组,先把这个搞清楚, 你!==的时候 每次循环3和5都会有不等于的时候,也就是每次都会返回 item,item有值 就是true 懂了吗
2019年06月19日 09点06分
10
level 1
Ferver髙
没有一个说到点上的,是因为你的循环在给的时候,同时会匹配两次 !== 而一个字符串只可能有一次true,那么第二次必定是false、所以你的错误在这里。楼上不是在扯知识就是在改方法,没什么卵意义
2019年06月20日 04点06分
11
level 1
Ferver髙
说错了,是一定会有一次false,比如 3!==3是false 但是循环往下继续了,3!==5的时候则true return出去了
2019年06月20日 04点06分
12
1