Javascript 不带辅助变量的过滤器内部循环返回值
我有这段代码,但是,为了实现这一点,我需要创建一个辅助变量来存储值。在没有这个变量的情况下,有可能做到这一点吗?也许是更实用的方法Javascript 不带辅助变量的过滤器内部循环返回值,javascript,ecmascript-6,functional-programming,Javascript,Ecmascript 6,Functional Programming,我有这段代码,但是,为了实现这一点,我需要创建一个辅助变量来存储值。在没有这个变量的情况下,有可能做到这一点吗?也许是更实用的方法 const filterSo = response => { return response.filter((item) => { let shoudlReturn = false; for (let key in item) { if (filters[lowerFirst(key
const filterSo = response => {
return response.filter((item) => {
let shoudlReturn = false;
for (let key in item) {
if (filters[lowerFirst(key)]) {
shoudlReturn = filters[lowerFirst(key)] === item[key];
}
}
return shoudlReturn;
});
};
因为答案是布尔值,所以只要知道答案是
true
,就可以返回。将条件更改为用于检查两种情况,如果两种情况都为true
,则立即返回
const filterSo = response => response.filter((item) => {
for (let key in item) {
if (filters[lowerFirst(key)] && filters[lowerFirst(key)] === item[key]) {
return true;
}
}
return false;
});
因为答案是布尔值,所以只要知道答案是
true
,就可以返回。将条件更改为用于检查两种情况,如果两种情况都为true
,则立即返回
const filterSo = response => response.filter((item) => {
for (let key in item) {
if (filters[lowerFirst(key)] && filters[lowerFirst(key)] === item[key]) {
return true;
}
}
return false;
});
看起来你可以简化你的代码如下
const filterSo = response =>
response.filter (item =>
Object.keys (item)
.map (lowerFirst)
.some (key => filters[key] && filters[key] === item[key])
)
看起来你可以简化你的代码如下
const filterSo = response =>
response.filter (item =>
Object.keys (item)
.map (lowerFirst)
.some (key => filters[key] && filters[key] === item[key])
)
只是一个小提示:从技术上讲,这与OP的代码不同,但很可能是他想要的。我的想法是:)成功了,谢谢!谢谢你的链接,这将非常有帮助:)只是一个小提示:从技术上讲,这与OP的代码不同,但很可能是他想要的。我的想法是:)成功了,谢谢!同时感谢您的链接,这将非常有帮助:)