如果给出了两个数字,我们怎样才能生成一个排序数组,其中包含所有数字。我有一个模糊的想法,但无法编码
这就是我的想法
我们怎么能用javascript数组做到这一点?感谢
答案 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;
}
首先,我尝试找到两者的最小数量,然后是最大数量并从中生成一个数组。