javascript - 如何简化数组过滤器
问题描述
我想知道如何简化它以避免重复小写并包含每个属性的条件。
items() {
return this.table.filter.keyword
? this.dataArray.filter(
item =>
item.nombre.toLowerCase().includes(this.table.filter.keyword) ||
item.paisOrigen
.toLowerCase()
.includes(this.table.filter.keyword) ||
item.ciudad.toLowerCase().includes(this.table.filter.keyword) ||
item.sector.toLowerCase().includes(this.table.filter.keyword) ||
item.contratadorPor
.toLowerCase()
.includes(this.table.filter.keyword) ||
item.moneda.toLowerCase().includes(this.table.filter.keyword)
)
: this.dataArray;
}
谢谢!
解决方案
您可以在应用过滤器之前使用 map 函数:
- 使用 map 将值转换为小写(您可以使用 for...in 循环来转换所有属性)
- 对地图的结果应用过滤器。
this.data.map(item => {
let ret = {};
for (let p in item) {
ret[p] = item[p].toLowerCase();
}
return ret;
}).filter(item => {
//... perform your filter logic here...
});
推荐阅读
- python - 无法打开使用 wxPython 在 folium 中生成的本地 HTML 文件
- javascript - 根据所选的第一列选择 HTML 表格的 2 列
- django - Django nginx 502 网关错误
- php - 分批处理
- python - 如何使用 matplotlib 绘制条形范围图?
- clio-api - 为 CLIO API“联系人”端点使用 custom_file_ids[] 查询参数时正确的多 ID 语法
- javascript - Javascript:随机播放表行
- python - 查询模型字段?在models.py中可以吗?
- excel - 条形图需要我点击更新 - 有办法吗?
- python - 按另一列降序分组对 DataFrame 元素进行排序