美文网首页重学JavaScript
写一个 dispatch 函数

写一个 dispatch 函数

作者: 阿畅_ | 来源:发表于2018-09-11 16:31 被阅读17次
  • 最近看到一个 JavaScript 的题,自己做了一下,又在网上找了类似的答案,这个题目是这样的
    • 给定整数 n 和 m,写一个函数 dispatch,把 n 尽量平分成 m 个数组

1. 不规定整数的顺序

function dispatch (n, m) {
  var i,j,arrays = [];
  for (let i = 0; i < m; i++) {
    arrays.push([]);
  }

  for(i = 1, j = 0; i<= n; i++, j = (j + 1) % m) {
    arrays[j].push(i)
  }
  return arrays;
}

console.log(dispatch(10,6))
[ [ 1, 7 ], [ 2, 8 ], [ 3, 9 ], [ 4, 10 ], [ 5 ], [ 6 ] ]

2. 规定整数顺序

function dispatch (n,m) {
  let average;
  let c = 1;
  let arr = [];
  average = Math.floor(n/m)
  for(let i = 0; i < m ; i++) {
    arr.push([])
    for(let j = 0; j < (i < n % m ? average + 1 : average); j ++) {
      arr[i].push(c++)
    }
  }
  return arr
}

console.log(dispatch1(10,6))
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 7, 8 ], [ 9 ], [ 10 ] ]

相关文章

网友评论

    本文标题:写一个 dispatch 函数

    本文链接:https://www.haomeiwen.com/subject/ypvugftx.html