如何在过滤器中使用数组中的值来减少重复代码

黑德瓦

所以我有了这个过滤器,我试图弄清楚是否可以更轻松/更好地进行此操作。感觉我重复了很多次。我想将所有数字放入一个数组,然后使用该数组进行过滤。

那么我可以使用包含所有数字的数组来做到这一点吗?就像是

var filterIDs = [2, 3, 5, 6, 8, 9, 31, ...]

而不是一些代码?我只是不知道如何。

目前可以使用,但感觉很笨拙且重复。

let filterPokemonRare = list.filter(function (f) {
            return     f.pokemon_id == 2 || //Ivysaur
                       f.pokemon_id == 3 || //Venusaur
                       f.pokemon_id == 5 || //Charmender
                       f.pokemon_id == 6 || //Charizard
                       f.pokemon_id == 8 || //Warturtle
                       f.pokemon_id == 9 || //Blastoise
                       f.pokemon_id == 31 || //Nidoqueen
                       f.pokemon_id == 34 || //Nidoking
                       f.pokemon_id == 36 || //Clefable
                       f.pokemon_id == 67 || //Machoke
                       f.pokemon_id == 68 || //Machamp
                       f.pokemon_id == 75 || //Graveler
                       f.pokemon_id == 76 || //Golem
                       f.pokemon_id == 78 || //Rapidash
                       f.pokemon_id == 85 || //Dodrio
                       f.pokemon_id == 89 || //Muk
                       f.pokemon_id == 94 || //Gengar
                       f.pokemon_id == 103 || //Exeggutor
                       f.pokemon_id == 106 || //Hitmonlee
                       f.pokemon_id == 107 || //Hitmonchan
                       f.pokemon_id == 108 || //Lickitung
                       f.pokemon_id == 113 || //Chansey
                       f.pokemon_id == 114 || //Tangela
                       f.pokemon_id == 130 || //Gyarados
                       f.pokemon_id == 131 || //Lapras
                       f.pokemon_id == 141 || //Kabutops
                       f.pokemon_id == 142 || //Aerodactyl
                       f.pokemon_id == 143 || //Snorlax
                       f.pokemon_id == 148 || //Dragonair
                       f.pokemon_id == 149 || //Dragonite

                       //GEN 2
                       f.pokemon_id == 153 || //Bayleef
                       f.pokemon_id == 154 || //Meganium
                       f.pokemon_id == 156 || //Quilava
                       f.pokemon_id == 157 || //Typhlosion
                       f.pokemon_id == 159 || //Croconaw
                       f.pokemon_id == 160 || //Feraligatr
                       f.pokemon_id == 179 || //Mareep
                       f.pokemon_id == 180 || //Flaaffy
                       f.pokemon_id == 181 || //Ampharos
                       f.pokemon_id == 201 || //UNOWN!!!
                       f.pokemon_id == 204 || //Pineco
                       f.pokemon_id == 205 || //Forretress
                       f.pokemon_id == 231 || //Phanpy
                       f.pokemon_id == 232 || //Donphan
                       f.pokemon_id == 237 || //Hitmontop
                       f.pokemon_id == 241 || //Miltank
                       f.pokemon_id == 242 || //Blissey
                       f.pokemon_id == 246 || //Larvitar
                       f.pokemon_id == 247 || //Pupitar
                       f.pokemon_id == 248 || //Tyranitar

                       //GEN 3
                       f.pokemon_id == 253 || //Grovyle
                       f.pokemon_id == 254 || //Sceptile
                       f.pokemon_id == 256 || //Combusken
                       f.pokemon_id == 257 || //Blaziken
                       f.pokemon_id == 259 || //Marshtomp
                       f.pokemon_id == 260 || //Swampert
                       f.pokemon_id == 271 || //Lombre
                       f.pokemon_id == 272 || //Ludicolo
                       f.pokemon_id == 279 || //Pelipper
                       f.pokemon_id == 281 || //Kirlia
                       f.pokemon_id == 282 || //Gardevoir
                       f.pokemon_id == 286 || //Breloom
                       f.pokemon_id == 288 || //Vigoroth
                       f.pokemon_id == 289 || //Slaking
                       f.pokemon_id == 295 || //Exploud
                       f.pokemon_id == 306 || //Aggron
                       f.pokemon_id == 308 || //Medicham
                       f.pokemon_id == 319 || //Sharpedo
                       f.pokemon_id == 321 || //Wailord
                       f.pokemon_id == 323 || //Camerupt
                       f.pokemon_id == 328 || //Trapinch
                       f.pokemon_id == 329 || //Vibrava
                       f.pokemon_id == 330 || //Flygon
                       f.pokemon_id == 332 || //Cacturne
                       f.pokemon_id == 334 //Altaria
                       f.pokemon_id == 329 || //Crawdaunt
                       f.pokemon_id == 346 || //Cradily
                       f.pokemon_id == 348 || //Armaldo
                       f.pokemon_id == 357 || //Masquerain
                       f.pokemon_id == 358 || //Chimecho
                       f.pokemon_id == 371 || //Bagon
                       f.pokemon_id == 372 || //Shelgon
                       f.pokemon_id == 373 || //Salamence
                       f.pokemon_id == 375 || //Metang
                       f.pokemon_id == 376; //Metagross
          });
妮娜·斯科茨(Nina Scholz)

您可以使用一个数组,并检查该数组是否包含pokemon_id

它与箭头功能配合使用对所需属性进行破坏性 分配 ,并Array#includes检查pokemon_id元素是否为数组的元素filterIDs

var filterIDs = [2, 3, 5, 6, 8, 9, 31 /* ... */],
    filterPokemonRare = list.filter(({ pokemon_id }) => filterIDs.includes(pokemon_id));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中使用Servlet过滤器来更改传入的Servlet请求网址?

Elasticsearch:如何在过滤器中使用Dismax查询

如何在过滤器方法中使用ContainerRequestContext获取REST api的有效负载

如何在过滤器中添加if语句?

我如何在过滤器Laravel中使用whereYear

如何在极限过滤器中动态分配变量并动态增加/减少其值?

在过滤器MDX中使用双参数

在过滤器中使用IMPORTRANGE

无法在过滤器功能中使用订阅输出值

如何在for中应用“过滤器过滤器”,而不是在Twig中使用“ if”

在过滤器函数中使用多个逻辑运算符简化Javascript代码

在过滤器公式中使用唯一

如何在过滤器方法中返回与&&在回调函数中加入的布尔值?

如何在过滤器中访问projectstage

如何在过滤器中访问Application或ViewHandler

如何在过滤器数据表中使用全局过滤器

如何在AngularJS中使用过滤器从数组中删除项目?

我如何在过滤器中获取请求

AngularJS在过滤器中使用$索引重复

如何在JavaScript中组合过滤器和减少数组

在 AngularJS 中,如何在过滤器过滤函数中使用参数?

如何在过滤器聚合中执行 AND / OR

如何在过滤器内部过滤反应

如何在过滤器pyspark RDD中过滤掉以“ URL”开头的行

在过滤器函数 React 中使用对象数组时获取空数组

如何在 google sheet API 上使用过滤器来显示 ASC 中的数据值?

在过滤器数组上使用扩展运算符来创建 Firestore 查询

如何在过滤器功能中使用 2 张纸的范围

如何在 MongoDB 中使用数组嵌套过滤器获取特定字段值?