Массивы, функции и циклы

0

Поэтому я изучал JavaScript в последнее время и решил попробовать создать "масштабируемый" генератор серийного кода. Однако я очень смущен массивами прямо сейчас, так как я пытаюсь заставить его работать, я уверен, что есть намного лучший способ сделать это, но проблема в том, что я пытаюсь создать каждый сгенерированный серийный ключ которые будут помещены в массив, например:

theCode = [{ 
    "id":"1",
    "code":"OOXCXAHEBUEIRVDASLWXBHTJN"
}];

Так что мне нужно: каждый раз, когда я нажимаю кнопку, он будет создавать новый индекс для массива и хранить серийный код в "коде" и, возможно, устанавливать "id" для каждого нового индекса массива?

var alphSet = "abcdefghijklmnopqrstuvwxyz";
var numSet = "0123456789";
var alphNumSet = alphSet + numSet;

function randomised(len) {
    return Math.floor(Math.random() * len);
}

function getRandom(str,set) {
    return set[randomised(set.length)].toUpperCase();
}

function randomiseStrings(str) {
    str = getRandom(str, alphSet);
    return str;
}

function displayCode(length, rows) {
    var currentRowNumber = 1;

    // Stack up each randomised string to a array.
    theCode = [{ 
        "id":"1",
        "code":"OOXCXAHEBUEIRVDASLWXBHTJN"
    }];
    function appendCode() {
        if (typeof theCode === 'undefined') {
            theCode[0] = [randomiseStrings()];
        } else {
            theCode[0] +=  [randomiseStrings()];
        }
    }

    for(var i=0; i<length*rows;i++) {
        appendCode();
    }
}

displayCode(5, 5);

$("#button").click(function() {
    console.log(theCode);
});

Для любого предложения или идеи я был бы благодарен.

Теги:

1 ответ

2
Лучший ответ

Начните с пустого массива ([]) и используйте метод push для добавления объекта в массив:

function displayCode(length, rows) {
  var currentRowNumber = 1;
  var theCode = [];

  for(var i = 0; i < length * rows; i++) {
    theCode.push({
      id: currentRowNumber++,
      code: randomiseStrings()
    });
  }
  return theCode;
}

$("#button").click(function() {
  var theCode = displayCode(5, 5);
  console.log(theCode);
});
  • 0
    Большое спасибо приятель!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню