如何将箭头函数的迭代次数限制在10个数据?

问题描述 投票:0回答:1

如何只搜索10个数据?

  const filterCategory = (category) => {
    return results.filter(
      result => {
      return result.category === category;
      })
  }
javascript arrow-functions
1个回答
2
投票

过滤器回调的第二个参数是index.

const filterCategory = (category) => {
  return results.filter(
    (result, index) => {
      if (index >= 10) {
        return false;
      }
      return result.category === category;
    })
  }
}

Mozilla的docs是一个很好的资源。https:/developer.mozilla.orgen-USdocsWebJavaScriptReferenceGlobal_ObjectsArrayfilter。


6
投票

您可以使用 slice() 的方法 results 数组,只得到前10个项目,然后你可以过滤这些项目。

const filterCategory = (category) => {
  return results.slice(0, 10).filter(result => {
    return result.category === category;
  })
}

0
投票

如果你只想得到10个项目的结果,你可以用... ... Array#some 并使用滤波数组的新长度进行短路。

const
    filterCategory = (category) => {
        const filtered = [];
        results.some(o => o.category === category && filtered.push(o) === 10);
        return filtered;
    };

0
投票

这可以通过使用三元运算符来简化。

const filterCategory = (category) => {
  return results.filter(
    (result, index) => {
        return index >= 10 ? false : (result.category === category);
    })
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.