如何只搜索10个数据?
const filterCategory = (category) => {
return results.filter(
result => {
return result.category === category;
})
}
过滤器回调的第二个参数是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。
您可以使用 slice()
的方法 results
数组,只得到前10个项目,然后你可以过滤这些项目。
const filterCategory = (category) => {
return results.slice(0, 10).filter(result => {
return result.category === category;
})
}
如果你只想得到10个项目的结果,你可以用... ... Array#some
并使用滤波数组的新长度进行短路。
const
filterCategory = (category) => {
const filtered = [];
results.some(o => o.category === category && filtered.push(o) === 10);
return filtered;
};
这可以通过使用三元运算符来简化。
const filterCategory = (category) => {
return results.filter(
(result, index) => {
return index >= 10 ? false : (result.category === category);
})
}
}