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的代码不同,但很可能是他想要的。我的想法是:)成功了,谢谢!同时感谢您的链接,这将非常有帮助:)