// temp data
var array = [1,2,function() { }, 3, function() { }];
var cb = function() { console.log("foo"); }
var found = false;
console.log(_.map(array, function(val) {
if (_.isFunction(val) && !found) {
return found = true, _.compose(cb, val);
}
return val;
}));
これにより、配列がループされ、最初に見つかった関数が合成関数に変換されます。
found = false
私はその変数/カウンターが嫌いです。どうすればそれを取り除くことができますか?
アルゴリズムとして。
let found be 0
map value in array
if value satisfies condition and found is 0
let found be 1
return mutate(value)
else
return value
アップデート
forループの使用
for (var i = 0; i < array.length; i++) {
if (_.isFunction(array[i])) {
array[i] = _.compose(cb, array[i]);
break;
}
}
_.map
、、、、_
_ _.isFunction
__.compose