首页 > 解决方案 > 如何使用javascript过滤值?

问题描述

我附上了图片: 在此处输入图像描述

从上图中,我必须在receiver_id_1、receiver_id_2、sender_id 的任何位置过滤这些数据“1565158223”和“4”,但要一起过滤。

我想删除包含“3”、“1”等的其他数据。

我想要一个具有最少代码和最少循环的解决方案,因为我得到的记录太多。

我可以检查条件,例如 (receiver_id_1 == "1565158223" AND "sender_id" == "4") OR (receiver_id_2 == "1565158223" AND "sender_id" == "4") OR (receiver_id_2 == "1565158223" AND “receiver_id_1” == “4”)同样明智..

但是我不想在这里写几个条件。

请任何人帮我解决它。

标签: javascript

解决方案


如果你可以使用 es6 的特性试试这个(我们假设你的数组是items):

filtered_items = items.filter(item => 
        [1565158223,4].indexOf(parseInt(item['receiver_id_1'])) > -1 && 
        [1565158223, 4].indexOf(parseInt(item['receiver_id_2'])) > -1 &&
        [1565158223, 4].indexOf(parseInt(item['sender_id'])) > -1
        )

请注意,它不会更改原点items,只是filtered_items您最终过滤的项目。


推荐阅读