数组,功能和循环

时间:2013-09-22 11:45:09

标签: javascript jquery

所以我最近一直在学习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 个答案:

答案 0 :(得分: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);
});