Поэтому я изучал 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);
});
Для любого предложения или идеи я был бы благодарен.
Начните с пустого массива ([]
) и используйте метод 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);
});