[8kyu]Find Multiples of a Number

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

[8kyu]Find Multiples of a Number_第1张图片

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

  • 解答【如解答有误,欢迎留言指正~】
  • 其一
const findMultiples = (int,limit) => {
      let len = limit%int == 0 ? limit/int : (limit - limit%int)/int;
      let list = [];
      for (let i=1;i
  • 其二
function findMultiples(int,limit){
      let result = []  
      for (let i = int; i<=limit ; i+=int) {
        result.push(i)   
      } 
      return result
}
  • 其三 Array.from方法
// 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);
  • 其四 fill方法
// 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;
}

你可能感兴趣的:([8kyu]Find Multiples of a Number)