数组上是否有内置方法可以提供匹配函数,它会返回第一个匹配项吗?
var first = [1,2].whatIsThisFunction(function(v) { return v === 1; }); // 1
答案 0 :(得分:0)
您可以使用some()函数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
它对每个项目应用回调,并在第一场比赛时返回。
var myArray = [...];
function callback(item){
// Code
}
myArray.some(callback);
设置非常简单:have a look at this fiddle.
var first = [6,4,2,3,5];
var match;
function isOdd(item){
console.log(item);
if(item % 2 === 1){
match = item;
return true;
}
}
first.some(isOdd);
console.log("First match is :"+match);
答案 1 :(得分:0)
<强>考虑强>:
所以这里完全是:
alert([1, 2, 7].reduce(function (r, _, __, o) {
return r || o[o.indexOf(7)];
}, undefined));
没有indexOf的版本:
function getFirstValueFn(v) {
return function (r, a) {
return (a === v || r) && a;
};
}
alert([1, 2, 0, 7].reduce(getFirstValueFn(0), undefined)); // 0
alert([1, 2, 0, 7].reduce(getFirstValueFn(7), undefined)); // 7
alert([1, 2, 0, 7].reduce(getFirstValueFn(42), undefined)); // undefined