[8kyu]Find Multiples of a Number

2017-06-29  本文已影响11人  君肄塵

该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~

  • 在这个简单的练习中,您需要构建一个函数,用于获取一个值(整数)的整数倍的集合,他会接收2个参数(int,limit),在获取该值(int)的整数倍数时,不能超过另一个值(limit)。如果 limit 是这个值的整数倍,那么它也应该包含在返回的集合中。该函数只接收正整数,limit 将始终高于 int 。

const findMultiples = (int,limit) => {
      let len = limit%int == 0 ? limit/int : (limit - limit%int)/int;
      let list = [];
      for (let i=1;i<len+1;i++){
        list.push(int*i);
      }
      return list;
}
function findMultiples(int,limit){
      let result = []  
      for (let i = int; i<=limit ; i+=int) {
        result.push(i)   
      } 
      return result
}
// es6 Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。
// Array.from 还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
const findMultiples = (int,limit)=>Array.from({length:~~(limit/int)},(a,i)=>i*int+int);
// es6 fill方法使用给定值,填充一个数组。
function findMultiples(int,limit){
      return Array(Math.floor(limit/int)).fill(1).map((x,i)=>int*(i+1));
}
// es6 fill方法使用给定值,填充一个数组。
function findMultiples(int,limit){
      var list = [];
      var product = int;
      while (product <= limit) {
        list.push(product);
        product += int;
      }
      return list;
}
上一篇下一篇

猜你喜欢

热点阅读