我在Javascript中实现firstOrDefault函数的缺陷在哪里?

时间:2015-09-25 17:59:13

标签: javascript jquery algorithm

我试图练习我的Javascript chops,并试图找出我尝试实现C#中存在的UIImageView函数的缺陷。

HTML:

firstOrDefault

JS:

<div id="#resultdiv"></div>

小提琴: http://jsfiddle.net/z3h06mwo/

另外,我应该延长function firstOrDefault ( arr, f ) { var result = null; for ( var i = 0, n = arr.length; i < n; ++i ) if (f(i)) return i; return result; } $(document).ready(function(){ var myArray = [1, 5, 9, 18]; var myFunction = function ( x ) { return x > 5; }; $('#resultdiv').text(firstOrDefault(myArray, myFunction)); // should print 9 inside #resultdiv }); 吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:3)

您将索引(0,1,2,...)传递给do,而不是;你还要返回索引,而不是值,但你说你希望它返回9,这就是值。

f

直播示例:

&#13;
&#13;
function firstOrDefault ( arr, f ) 
{
    var result = null;
    var value;                                      // <===
    for ( var i = 0, n = arr.length; i < n; ++i ) {
        value = arr[i];                             // <===
        if (f(value)) return value;
        //    ^^^^^          ^^^^^
    }
    return result;
}
&#13;
function firstOrDefault(arr, f) {
  var result = null;
  var value;
  for (var i = 0, n = arr.length; i < n; ++i) {
    value = arr[i];
    if (f(value)) return value;
  }
  return result;
}

var myArray = [1, 5, 9, 18];
var myFunction = function(x) {
  return x > 5;
};
$('#resultdiv').text(firstOrDefault(myArray, myFunction)); // should print 9 inside #resultdiv
&#13;
&#13;
&#13;

旁注:看看我如何在那里添加括号,因为我添加了第二个声明? FWIW强烈建议使用大括号始终。您的IDE可以提供帮助。