I need a function to create an array using 2 values such that:
length
: used to determine the new array lengthmaxIndexValue
: used to determine the max value at a given array index before starting back at 0.
example:
// length and maxIndexValue are integer values.
function buildArray(length, maxIndexValue){
// TODO: Implementation
return array;
}
let newArray = buildArray(16, 3)
// newArray should be [0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
console.log(newArray);
CodePudding user response:
You can easily achieve the result using %
operator as
Array(length)
.fill(0)
.map((_, i) => i % (maxIndexValue 1));
or
new Array(length).fill(0).map((_, i) => i % (maxIndexValue 1));
function buildArray(length, maxIndexValue) {
return Array(length)
.fill(0)
.map((_, i) => i % (maxIndexValue 1));
}
const length = 16,
maxIndexValue = 3;
let newArray = buildArray(length, maxIndexValue);
console.log(newArray);
CodePudding user response:
This can be achieved using mod %
operator.
function buildArray(length, maxIndexValue) {
const arr = new Array(length);
for (let a = 0; a < length; a ) {
// Using the mod % operator
// 0 % 4 = 0
// 1 % 4 = 1
// 2 % 4 = 2
// 3 % 4 = 4
// 4 % 4 = 0
// 5 % 4 = 1
// .. so on
arr[a] = a % (maxIndexValue 1);
}
return arr;
}
let newArray = buildArray(16, 3);
console.log(newArray);