Создать массив, чередующийся между 2 различными значениями - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь создать массив, чередующийся между 2 различными значениями с заданной длиной.

Пример:

conts value1 = 1;
const value2 = 2; 
cont length = 6; 

//desired output
const array1 = [1, 2, 1, 2, 1, 2];

Ответы [ 4 ]

2 голосов
/ 17 марта 2020

Вы можете создать массив, используя Array.from с желаемой длиной и map, чтобы он имел желаемые значения:

const value1 = 1;
const value2 = 2; 
const length = 6; 

const result = Array.from({ length }).map((e, ndx) => ndx % 2 ? value2 : value1); 

console.log(result);
0 голосов
/ 18 марта 2020

Вы можете взять массив значений в требуемом порядке и использовать замыкание по индексу массива значений, откорректированному путем взятия остатка с длиной массива значений.

const values = [1, 2],
      length = 6,
      result = Array.from({ length }, (i => _ => values[i++ % values.length])(0)); 

console.log(result);
0 голосов
/ 17 марта 2020

Простое решение для начинающих будет выглядеть примерно так:

function createArray(value1, value2, length){
    var array = new Array()
    for(var i=0; i<length;i++){ 
          if(i%2 == 0){
           array.push(value1);
          }else{
           array.push(value2);
          }
    return array;
    }
}
0 голосов
/ 17 марта 2020

Попробуйте с:

var repeated = new Array(3).fill([1, 2]).flat();

Или более общим:

function repeat(n, value){
    return new Array(n).fill(value).flat();
}

result = repeat(3, [1, 2]);

Кредиты: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...