gpt4 book ai didi

javascript - 如何在不循环整个数组的情况下找到与条件匹配的前 n 个数组项

转载 作者:行者123 更新时间:2023-12-01 14:58:25 26 4
gpt4 key购买 nike

我试图在一个非常大的数组中找到与条件匹配的前 100 个项目,为了提高效率,我更愿意在找到这 100 个项目后结束循环,因为匹配项目的方法很昂贵。
问题是这样做:

const results = largeArray.filter(item => checkItemValidity(item)).slice(0, 100);
在返回前100个之前会在大数组中找到所有结果,这对我来说太浪费了。
这样做:
const results = largeArray.slice(0, 100).filter(item => checkItemValidity(item));
可能返回少于 100 个结果。
请问最有效的方法是什么?

最佳答案

而不是放置一个条件和breakfor 内循环,只需在 for 中添加额外的长度检查条件本身

const data = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14"],
isValid = n => !(n%2),
res = [],
max = 5;

for (let i = 0; i < data.length && res.length < max; i++) {
isValid(data[i]) && res.push(data[i]);
}

console.log(res)

关于javascript - 如何在不循环整个数组的情况下找到与条件匹配的前 n 个数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63317650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com