javascript - 过滤器方法内部的for循环无法按预期工作
问题描述
我正在使用filter
方法过滤出数组,如下所示:
this.gridOptions.api.setRowData(
this.arrayToFilter.filter(obj => obj.status !== "Declined")
);
上面的代码工作正常,但是当我尝试遍历表的所有列字段时它不起作用,这是我的代码:
this.gridOptions.api.setRowData(this.arrayToFilter.filter(function(item) {
for(var i = 0; i < columns.length; i++) {
var temp = columns[i].headerName
if(item[temp] === 'Declined')
return false
return true
}
}));
我在循环中做错了什么?
解决方案
您的代码中存在逻辑错误:一旦第一列的 headerName 不是“已拒绝”,它将始终返回 true。
将return true
块放在循环之外。
this.gridOptions.api.setRowData(this.arrayToFilter.filter(function(item) {
for(var i = 0; i < columns.length; i++) {
var temp = columns[i].headerName
if(item[temp] === 'Declined')
return false
}
return true
}));
推荐阅读
- ios - 如何在 React Native 中更改 iOS/Android 项目文件夹
- javascript - 获取同一类的多个下拉列表的选定索引
- univocity - 使用例程的 Univocity 解析器使用 defaultNullRead 属性忽略 LongCoversion?
- netty - 当对 netty 服务器发出请求时,不会调用 ChannelRead 方法
- android - 我如何知道何时需要在 RxJava 中处理一次性用品?
- python - 如何处理 CSV 文件中引号字符中的引号字符?
- database-connection - 无法使用 Netbeans 或 ij 连接 derby 数据库的备份
- prolog - Prolog中N个相关事件的析取概率
- javascript - 如何通过单击 iframe 中的按钮将用户重定向到另一个页面
- string - 处理 Splunk 过滤器中的特殊字符