gpt4 book ai didi

javascript - 如何缩短这个JS函数

转载 作者:行者123 更新时间:2023-12-05 00:27:08 24 4
gpt4 key购买 nike

我有这个带有硬编码过滤器参数的 Js 函数。当键以给定列表中的字符串开头时,它会过滤所有存储桶子对象。现在我还没有找到一种方法把这个列表作为一个数组......

     function filter(buckets) {
return buckets.filter(({key}) => {
const _key = key.toLowerCase();
return (
!_key.startsWith("anciennes") && !_key.startsWith("anciens") && !_key.startsWith("arrondissements") && !_key.startsWith("autorites") && !_key.startsWith("cantons") && !_key.startsWith("capitales") &&
!_key.startsWith("chaines") && !_key.startsWith("chefs lieux") && !_key.startsWith("circonscriptions") && !_key.startsWith("communautes d") && !_key.startsWith("comtes d") && !_key.startsWith("constellations") && !_key.startsWith("continents") &&
!_key.startsWith("cours d") && !_key.startsWith("départements") && !_key.startsWith("districts d") && !_key.startsWith("établissements") && !_key.startsWith("états") && !_key.startsWith("ethnonymes") && !_key.startsWith("étoiles") &&
!_key.startsWith("europe") && !_key.startsWith("îles") && !_key.startsWith("lander-allemands") && !_key.startsWith("lieux-mythologiques") && !_key.startsWith("Localités d") && !_key.startsWith("mers") &&
!_key.startsWith("montagnes") && !_key.startsWith("municipalité") && !_key.startsWith("fromage") && !_key.startsWith("localités") && !_key.startsWith("noms de") && !_key.startsWith("numéros de") &&
!_key.startsWith("odonymes") && !_key.startsWith("organisations internationales") && !_key.startsWith("pays ") && !_key.startsWith("péninsules") && !_key.startsWith("préfectures") && !_key.startsWith("provinces") && !_key.startsWith("quartiers") &&
!_key.startsWith("régions") && !_key.startsWith("réserves indiennes") && !_key.startsWith("sous ") && !_key.startsWith("territoires") && !_key.startsWith("toponymes ") && !_key.startsWith("unions supranationales") && !_key.startsWith("villes du quebec") && !_key.startsWith("voivodies de pologne")
)
})
}


const buckets = [
{"key": "Aliments", "doc_count": 10}, {"key": "Adjectifs", "doc_count": 7}, {"key": "Vêtements", "doc_count": 6}, {"key": "Armures", "doc_count": 5}, {"key": "Anciennes divisions géographiques", "doc_count": 4}, {"key": "Super-règnes", "doc_count": 4},
{"key": "Eucaryotes", "doc_count": 3}, {"key": "Pays", "doc_count": 3}, {"key": "Antonomases", "doc_count": 2}, {"key": "Continents", "doc_count": 2}, {"key": "Europe", "doc_count": 2}, {"key": "France", "doc_count": 2},
{"key": "Localités", "doc_count": 2}, {"key": "Localités de France", "doc_count": 2}, {"key": "Plantes", "doc_count": 2}, {"key": "États", "doc_count": 2}, {"key": "Acaryotes", "doc_count": 1},
{"key": "Animaux", "doc_count": 1}, {"key": "Armes", "doc_count": 1}, {"key": "Aromates", "doc_count": 1}, {"key": "Chordés", "doc_count": 1}, {"key": "Couleurs", "doc_count": 1}, {"key": "Créatures mythologiques", "doc_count": 1},
{"key": "Fromages", "doc_count": 1}, {"key": "Fromages forts", "doc_count": 1}, {"key": "Fromages à pâte filée", "doc_count": 1}, {"key": "Fruits", "doc_count": 1}, {"key": "Langages informatiques", "doc_count": 1},
{"key": "Localités du département de la Corrèze", "doc_count": 1}, {"key": "Localités du département de la Dordogne", "doc_count": 1}, {"key": "Machines", "doc_count": 1}, {"key": "Oiseaux", "doc_count": 1}, {"key": "Tétrapodes", "doc_count": 1},
{"key": "Vertébrés", "doc_count": 1}, {"key": "Vie domestique", "doc_count": 1}, {"key": "Virus", "doc_count": 1}, {"key": "Volcans", "doc_count": 1}
];
jsbin在这里:
https://jsbin.com/xicejozafe/edit?js,console
如何转换此函数以生成 !_key.startsWith( ... ) &&来自这个疯狂的硬编码长 && 的字符串数组
      const listOfTermToIgnore =  ["anciennes", "anciens", "arrondissements", "autorites", "cantons", "capitales",
"chaines", "chefs lieux", "circonscriptions", "communautes d", "comtes d", "constellations", "continents",
"cours d", "départements", "districts d", "établissements", "états", "ethnonymes", "étoiles",
"europe", "îles", "lander-allemands", "lieux-mythologiques", "Localités d", "mers",
"montagnes", "municipalité", "fromage", "localités", "noms de", "numéros de",
"odonymes", "organisations internationales", "pays ", "péninsules", "préfectures", "provinces", "quartiers",
"régions", "réserves indiennes", "sous ", "territoires", "toponymes ", "unions supranationales", "villes du quebec", "voivodies de pologne" ]
谢谢阅读

最佳答案

您可以使用 array.some 的倒数。如果 _key 以数组中的任何项目开头,它将返回 false,否则返回 true。

 function filter(buckets) {
return buckets.filter(({key}) => {
const _key = key.toLowerCase();
return !listOfTermToIgnore.some(item => _key.startsWith(item))
})
}

关于javascript - 如何缩短这个JS函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70852570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com