【发布时间】:2023-03-10 14:10:01
【问题描述】:
如何创建一个数组 给定 n>=0,创建一个长度为 n*n 的数组,其中 n=3 的模式如下所示:{0, 0, 1, 0, 2, 1, 3, 2, 1 }
squareUp(3) → 0,0,1,0,2,1,3,2,1
squareUp(2) → 0,1,2,1
squareUp(4) → 0,0,0,1,0,0,2,1,0,3,2,1,4,3,2,1
我已经编写了以下代码并且它可以工作,但我认为有一种更简单更好的方法来处理这个问题。
function squareUp(n){
let a = n;
let x;
let nums = checker(n);
let num = [];
while (a >= 1){
let j = nums.slice(0,n);
/*console.l*/
let x = mod(j,a);
pusher(nums,x);
a--;
}
return nums.slice(n,);
}
function checker(n){
let x = [];
while (n >= 1){
x.push(n);
n--;
}
return x;
}
function mod(nums,n){
let numb = [];
for (var i = 0;i < nums.length;i++){
let x = nums[i] % n;
numb.unshift(x);
}
return numb;
}
function pusher(arr1,arr2){
for (var i = 0;i < arr2.length;i++){
arr1.unshift(arr2[i]);
}
return arr1;
}
代码太长,希望有更好的方法来做题
【问题讨论】:
标签: javascript arrays performance while-loop javascript-objects