具有数组长度参数的JavaScript函数

时间:2018-06-15 03:36:28

标签: javascript arrays optimization

好的,我实现了100,500,1000等随机数组。元素从0到3米。

var array1 = [];
for (var k= 0, t=100; k<t; k++){
    array1.push(Math.round(Math.random() * 3000000))
};
var array2 = [];
for (var k= 0, t=500; k<t; k++){
    array2.push(Math.round(Math.random() * 3000000))
};

对于不同长度的阵列,我重复了8次。所以我想用执行此算法的函数优化它,并且在函数后面我只需要声明我需要的数组的长度。所以它可以像这样

var [100,500,1000,10000] //number of lengths
function().... // doing algorithm
console.log(array1) // array of 100 elements
console.log(array2) // array of 500 elements
etc...

那么如何实现呢?

2 个答案:

答案 0 :(得分:1)

您可以简单地编写一个函数,将所需数组的长度作为参数。它非常简单,只需要查看代码中的差异,然后用变量替换它们。从您的代码中获取,这将是

&#13;
&#13;
function createArrayWithLength(length) {
  var array1 = [];
  for (var k = 0, t = length; k < t; k++) {
    array1.push(Math.round(Math.random() * 3000000))
  };
  return array1;
}

console.log(createArrayWithLength(3));
&#13;
&#13;
&#13;

您也可以使它更容易一些,而不是使用以下函数来创建您的数组:

&#13;
&#13;
function createArrWithLength(length) {
  return Array.from({length}, () => Math.round(Math.random() * 3000000));
}
console.log(createArrWithLength(3))
&#13;
&#13;
&#13;

答案 1 :(得分:0)

以下是一个例子:

&#13;
&#13;
var sizes = [100,500,1000,10000] //number of lengths
var result_arr = [];

for(var i=0;i<sizes.length;i++){
  result_arr[i] = getRandomArray(sizes[i]);
}

  console.log(result_arr);


function getRandomArray(size){
  var array = [];
  for (var k= 0; k<size; k++){
      array.push(Math.round(Math.random() * 3000000))
  };
  return array;
}
&#13;
&#13;
&#13;