根据用户输入创建数组

时间:2015-08-18 13:03:23

标签: javascript arrays

以下代码从3个输入框中获取值,将它们处理为字符串并将其存储在数组中。每次用户按下添加按钮时,都会向该数组添加一个新字符串。

如果数组不存在,则会在我的代码开头自动创建。

但是,每次用户输入" new"时,我都希望创建一个新数组。 "前缀"中的值输入框。

可以这样做吗?

function test(){
if(typeof uld === "undefined"){ 
    window.uld = [];
}

pre = document.getElementById("prefix").value.toUpperCase();
ser = document.getElementById("serial").value;
suf = document.getElementById("suffix").value.toUpperCase();

nbrUld = uld.length + 1

if (nbrUld == 1 || nbrUld % 5 == 1){ 
    uld.push(pre + "." + ser + suf); 
    uld2 = uld.join(''); 
} else if (nbrUld % 5 === 0){ 
    uld.push("/" + ser + suf + ".T" + "5\n");
    uld2 = uld.join(''); 
} else {
    uld.push("/" + ser + suf); 
    uld2 = uld.join(''); 
}
ttl = ".T" + nbrUld % 5;
if (nbrUld % 5 === 0){
    document.getElementById("scm").value = uld2;
} else {
    document.getElementById("scm").value = uld2+ttl
}
}

1 个答案:

答案 0 :(得分:0)

您可以将uld转换为对象以充当哈希。如果使用相同的前缀,则将替换该阵列。如果这不是应用程序所需要的,请使用push。

function test(){
  if(typeof uld === "undefined"){
      window.uld = {};
  }

  pre = document.getElementById("prefix").value.toUpperCase();
  ser = document.getElementById("serial").value;
  suf = document.getElementById("suffix").value.toUpperCase();

  var newArr = [];
  uld[pre] = newArr;

  nbrUld = newArr.length + 1

  if (nbrUld == 1 || nbrUld % 5 == 1){
      newArr.push(pre + "." + ser + suf);
      uld2 = newArr.join('');
  } else if (nbrUld % 5 === 0){
      newArr.push("/" + ser + suf + ".T" + "5\n");
      uld2 = uld.join('');
  } else {
      newArr.push("/" + ser + suf);
      uld2 = newArr.join('');
  }
  ttl = ".T" + nbrUld % 5;
  if (nbrUld % 5 === 0){
      document.getElementById("scm").value = uld2;
  } else {
      document.getElementById("scm").value = uld2+ttl
  }
}