gpt4 book ai didi

javascript - 遍历数组并在匹配正确值时退出?

转载 作者:行者123 更新时间:2023-11-29 16:54:29 27 4
gpt4 key购买 nike

简而言之,如果以功能方式满足我的条件,是否有退出循环的方法?

让我详细说明。
假设我有一个数组:-

var arr = [4,6,2,24,16,13,88,64,28,39,66,26,9]

我想从 arr 中提取第一个奇数。
我最初的想法是我可以只使用 .some 并在满足我的条件时获取第一个元素但是当我查看 MDN 时我很快发现它并不像我想象的那么简单.some 只返回 boolean 值。
所以,我的另一种方法是使用 .filter ,它会过滤掉所有奇数并获取第一个,但这样做会使循环遍历整个数组,即使 filter 已经找到了循环中的第一个奇数。这对于小数组来说还好,但是对于元素很大的数组,感觉就很没必要了。

我是否遗漏了函数式技术的某些内容,或者这通常是函数式编程的方式吗?

仅供引用,我使用 .some.filter 的解决方案是:-

var result1, result2;

//Loop ends on the right element but result wrong value
var arr = [4, 6, 2, 24, 16, 13, 88, 64, 28, 39, 66, 26, 9];
result1 = arr.some(function (i) {
return i % 2;
});

//Has right value but loop continues till the end
result2 = arr.filter(function (i) {
return i % 2;
})[0];

最佳答案

您可以使用 some用一个变量来存储第一个奇数值。

Fiddle

var arr = [4, 6, 2, 24, 16, 13, 88, 64, 28, 39, 66, 26, 9];
var odd = 0;
arr.some(function(i) {
console.log(i); // To check if this loop over all the elements of array

odd = i; // Assign the value
return i % 2;
});

document.write(odd);

关于javascript - 遍历数组并在匹配正确值时退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359992/

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