计算机微刊前端程序员干货前端學習筆記

FreeCodeCamp筆記之:Finders Keepers

2017-10-23  本文已影响6人  delphuy

题目

写一个function,它遍历数组arr,并返回数组中第一个满足func返回值的元素。举个例子,如果arr为[1, 2, 3],func为function(num) {return num === 2; },那么find的返回值应为2。如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
Array.filter()

function find(arr, func) {
  var num = 0;
  return num;
}
find([1, 2, 3, 4], function(num){ return num % 2 === 0; });
find([1, 3, 5, 8, 9, 10], function(num) { return num % 2 === 0; }) 应该返回 8。
find([1, 3, 5, 9], function(num) { return num % 2 === 0; }) 应该返回 undefined。

思路

1.看完了意思应该是从arr 中找到满足func的逻辑的数字,如果找不到,应该返回undefined;
2.这个比较简单,上for循环应该可以解决;

解答

function find(arr, func) {
  var num = 0;
  for (var i=0;i<arr.length;i++){
        if (func(arr[i])){
          num = arr[i] ;
          break;   // 依题目要求是返回数组中第一个满足的元素,因此找到第一个值之后记得强制跳出循环
        }    
  }
  if (!num){  // 当num 不存在时应该返回undefined
    return undefined;
  } 
  return num;
}
find([1, 2, 3, 4], function(num){ return num % 2 === 0; });
上一篇下一篇

猜你喜欢

热点阅读