如何使用给定数字之间的所有数字扩展数组?

时间:2017-06-20 10:33:48

标签: javascript arrays

如果给出了两个数字,我们怎样才能生成一个排序数组,其中包含所有数字。我有一个模糊的想法,但无法编码

这就是我的想法

  • 如果给出1和50
  • 取Math.min,递增1,直到< = Math.max
  • 将值推送到新数组

我们怎么能用javascript数组做到这一点?感谢

5 个答案:

答案 0 :(得分:1)

一个简单的for循环可以解决问题。这有助于您理解。

function retArray(a, b) {
  
  if(a > b) {
    var c = a;
    a = b;
    b = c;
  }

  let arr = [];

  for(let i = a; i <= b; i++) {
    arr.push(i);
  }
  
  return arr;
}

/* Alternate Way */

function retArrayAlt(a, b) {
  let arr = [];

  for(let i = Math.min(a,b); i <= Math.max(a,b); i++) {
    arr.push(i);
  }
  
  return arr;
}

console.log(retArrayAlt(1, 10));
console.log(retArrayAlt(10, 1));

答案 1 :(得分:0)

首先,您需要按升序对数组进行排序。

有内置方法可以做到这一点:

StepPluginType.getInstance().getPluginFolders().add(new PluginFolder(pathToPentahoPlugins, false, true));
KettleEnvironment.init();
...

所以resultArray就是你需要的。

答案 2 :(得分:0)

var array = [1,2,3,9,4,33,333,12,33];
var aVal = 1;
var bVal = 50;
var dummyArray;
function sort() {
    dummyArray = array.filter(function(number,index,arr){
        return number > aVal && number < bVal && index == arr.indexOf(number);
    })
    console.log(dummyArray.sort(function(a,b) {
        return a-b;
    }))
}
sort();

答案 3 :(得分:0)

此解决方案避免了必须使用for循环:

function createArray(a, b) {
  // create array of numbers up to and including b
  const arr = [...Array(b + 1).keys()];
  // filter array to only include numbers greater than or equal to a
  return arr.filter(x => x >= a);
}

答案 4 :(得分:-2)

function generateArray(a, b) {
    var startPointer = Math.min(a, b);
    var endPointer = Math.max(a, b);

    var arr = [];

    for (var i = startPointer; i <= endPointer; i++) {
     arr.push(i);
    }

    return arr;
}

首先,我尝试找到两者的最小数量,然后是最大数量并从中生成一个数组。