获取数组中满足 Javascript 条件的第一个元素的高阶方法
Higher Order way of getting the first element in an array that meets a condition in Javascript?
在 Javascript 中获取数组中满足条件的第一个元素的高阶方法?
假设我有一个包含这些元素的数组:[1, 2, 3, 0, 3]
;
我想得到第一个大于2
的元素。
如何使用高阶函数实现此目的?
越紧凑越好。
如果我能在哈斯克尔上做到这一点,我会做:
head $ filter condition array
for example:
head $filter (> 2) [1, 2, 3, 0, 3]
像这样(小提琴):
function isBigEnough(element) {
return element >= 2;
}
alert([1, 2, 3, 0, 3].filter(isBigEnough)[0]);
或者使用匿名函数的简短方法,如评论(小提琴)中所述:
alert([1,2,3,0,3].filter(function(e){return e>=2;})[0]);
文档
下划线是一个具有有用实用程序函数的 JavaScript 库,包括一个名为 find 的库,它可以做你想要的。
http://underscorejs.org/#find
所以你可以写var x = _.find([1,2,3,0,3], function(v) { return v >= 2; });
可以使用 some Array 方法迭代数组,直到满足条件(然后停止)。不幸的是,它只会返回条件是否满足一次,而不是由哪个元素(或哪个索引)满足。
function find(arr, test, ctx) {
var result = null;
arr.some(function(el, i) {
return test.call(ctx, el, i, arr) ? (result = el), true : false;
});
return result;
}
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- 在javascript数组中推送多个值并获取第一个元素
- Angular js将只显示ng repeat中的第一个元素
- 使用+=运算符未定义对象中的第一个元素
- javascript window.addEventListener,覆盖了第一个元素的配置
- 如何访问 JSON 对象数组的第一个元素
- 第一个元素和最后一个元素之间的连续循环
- 要插入二叉树的第一个元素,请将其放在左边还是右边
- 向下滚动时覆盖页面的第一个元素或块
- 数组未发送所有元素,只获取第一个元素
- 创建每个数组的第一个元素的数组
- 只显示ng重复的第一个元素
- CKEditor:以小部件作为第一个元素,选择所有在Chrome中不工作的
- 从Web视图上显示的页面部分获取第一个元素
- 有没有更好的方法来访问用JQuery选择器选择的第一个元素
- JQuery验证仅适用于提交的表单中的第一个元素.[打算验证所有内容]
- jQuery导航菜单没有't更新第一个元素
- jQuery如何删除第一个元素前的逗号
- 如何获取数组第一个元素的范围
- 使用 Dart 时,我正在创建一个点击事件的 DOM 类.它只拾取第一个元素,我如何让它在所有元素上发射