Javascript For Loop с условиями - PullRequest
       4

Javascript For Loop с условиями

0 голосов
/ 13 октября 2018

Я хочу использовать цикл for для выполнения следующего.

У меня будет определенный набор значений в массиве, набор шестнадцатеричных значений в качестве цветов по умолчанию для диаграммы.Я хочу получить определенное количество этих значений, используя цикл с 2 вариантами.

  1. Если количество значений в определенном наборе цветов меньше, чем количество запрошенных значений, при достижении последнего значения оно начинается с единицы и продолжает цикл.

  2. Менее важным, но полезным может быть начало с захвата значений любого индекса в наборе значений по умолчанию и использования тех же условий, что и # 1, в том случае, если оно достигает последнего значенияв массиве цветов он вернется к началу и продолжит движение.

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

var defaultColors = ["#90CAF9","#B39DDB","#7E57C2","#78909C","#AED581"] ;
var chartData = [12,24,30,40,15,23,35] ;

var dynamicColors = function (a) {
    var colors = [];
    for(i=0;i<a;i++){
        colors.push(defaultColors[i]);
    }
    return colors;
}

И призыв к цветам

backgroundColor: dynamicColors(chartData.length),

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

Ожидаемый вывод для # 1, просто повторяющийся от начала массива.

["#90CAF9","#B39DDB","#7E57C2","#78909C","#AED581","#90CAF9","#B39DDB"]

Ожидаемый вывод для # 2 - Указание начального индекса.

["#7E57C2","#78909C","#AED581","#90CAF9","#B39DDB","#7E57C2","#78909C"]

1 Ответ

0 голосов
/ 13 октября 2018

Вы можете использовать по модулю (он же остаток) оператор % с длиной списка, чтобы продолжить цикл по списку:

var defaultColors = ["#90CAF9", "#B39DDB", "#7E57C2", "#78909C", "#AED581"];
var chartData = [12, 24, 30, 40, 15, 23, 35];

var dynamicColors = function(a) {
  var colors = [];
  for (i = 0; i < a; i++) {
    colors.push(defaultColors[i % defaultColors.length]);
  }
  return colors;
}

console.log(dynamicColors(10))

Чтобы начать в другом месте, просто добавьте его к i и снова используйте оператор мода:

var defaultColors = ["#90CAF9", "#B39DDB", "#7E57C2", "#78909C", "#AED581"];
var chartData = [12, 24, 30, 40, 15, 23, 35];

var dynamicColors = function(a, start) {
  var colors = [];
  for (i = 0; i < a; i++) {
    colors.push(defaultColors[(i + start) % defaultColors.length]);
  }
  return colors;
}

console.log(dynamicColors(7, 3)) // seven values starting at index 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...