Запустите цикл for для определенного индекса и цикл для длины массива - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь выполнить цикл for для массива и иметь возможность запустить этот цикл для определенного индекса и выполнить цикл по массиву x количество раз.

const array = ['c','d','e','f','g','a','b','c']

Я хочу выполнить цикл 8индексы, начинающиеся с любого индекса, который я хочу.Пример, начинающийся с массива [4] (g), вернул бы

'g','a','b','c','c','d','e','f'

Это то, что я пробовал до сих пор

const notes = ['c','d','e','f','g','a','b','c']

var res = []
for (var i = 4; i < notes.length; i++) {
res.push(notes[i])
}

console.log(res)

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Простой способ.

var notes = ['c','d','e','f','g','a','b','c'];

function looparr(arr, start)
{
    var res = [], start = start || 0;
    for(var index = start, length=arr.length; index<length; index++)
    {
        res.push(arr[index]);
        index == (arr.length-1) && (index=-1,length=start);
    }
    return res;
}

console.log(looparr(['c','d','e','f','g','a','b','c'], 0));
console.log(looparr(['c','d','e','f','g','a','b','c'], 2));
console.log(looparr(['c','d','e','f','g','a','b','c'], 4));
console.log(looparr(['c','d','e','f','g','a','b','c']));
0 голосов
/ 05 декабря 2018

Очень простое решение ниже :) Пока i

let array = ['c','d','e','f','g','a','b','c'];
var index = 4;

    for(var i = 0; i < index; i++){
        var letter1 = array.shift(i); // Remove from the start of the array
        array.push(letter1); // Add the value to the end of the array
    }
    console.log(array);

Наслаждайтесь:)

0 голосов
/ 05 декабря 2018

Вы можете использовать оператор по модулю%.

    const getArray = (array, index) => {
      const result = [];
      const length = array.length;
      for (let i = 0; i < length; i++) {
        result.push(array[(index + i) % length]);
      }
      return result;
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...