Javascript动态字符串数组

时间:2009-08-31 14:03:17

标签: javascript arrays

有没有办法在Javascript上创建动态字符串数组? 我的意思是,在页面上,用户可以输入一个数字或30个数字,然后他/她按下OK按钮,下一页按照输入的顺序显示数组,一次一个元素。

感谢代码。

8 个答案:

答案 0 :(得分:57)

  

我的意思是,在页面上,用户可以输入一个数字或30个数字,然后他/她按下OK按钮,下一页按照输入的顺序显示数组,一次一个元素

好的,所以你首先需要一些用户输入?有几种方法可以做到这一点。

  1. 首先是prompt()函数,它显示一个弹出窗口,询问用户输入的内容。
    • 优点:简单。缺点:难看,不能轻易回去编辑。
  2. 其次是使用html <input type="text">字段。
    • 优点:可以设置样式,用户可以轻松查看和编辑。缺点:需要更多编码。
  3. 对于prompt方法,收集字符串是一件轻而易举的事:

    var input = []; // initialise an empty array
    var temp = '';
    do {
        temp = prompt("Enter a number. Press cancel or leave empty to finish.");
        if (temp === "" || temp === null) {
            break;
        } else {
            input.push(temp);  // the array will dynamically grow
        }
    } while (1);
    

    (是的,这不是最漂亮的循环,但已经很晚了,我累了......)

    另一种方法需要更多的努力。

    1. 在页面上放置一个输入字段。
    2. 为其添加onfocus处理程序。
      1. 检查此后是否有另一个输入元素,如果有,请检查它是否为空。
        • 如果有,请不要做任何事。
        • 否则,创建一个新输入,将其放在此输入之后并将相同的处理程序应用于新输入。
    3. 当用户点击“确定”时,遍历页面上的所有<input>并将其存储到数组中。
    4. 例如:

      // if you put your dynamic text fields in a container it'll be easier to get them
      var inputs = document.getElementById('inputArea').getElementsByTagName('input');
      var input = [];
      for (var i = 0, l = inputs.length; i < l; ++i) {
          if (inputs[i].value.length) {
              input.push(inputs[i].value);
          }
      }
      

      之后,无论您采用何种方式收集输入,都可以通过多种方式将数字打印回屏幕。一个简单的方法是这样的:

      var div = document.createElement('div');
      for (var i = 0, l = input.length; i < l; ++i) {
          div.innerHTML += input[i] + "<br />";
      }
      document.body.appendChild(div);
      

      我把它放在一起,所以你可以看到它在jsbin上工作
      提示方法:http://jsbin.com/amefu
      输入法:http://jsbin.com/iyoge

答案 1 :(得分:16)

var junk=new Array();
junk.push('This is a string.');

等等。

答案 2 :(得分:9)

据我所知,Javascript有动态数组。您可以动态添加,删除和修改元素。

var myArray = [1,2,3,4,5,6,7,8,9,10];
myArray.push(11);
document.writeln(myArray);  // Gives 1,2,3,4,5,6,7,8,9,10,11


var myArray = [1,2,3,4,5,6,7,8,9,10];
var popped = myArray.pop();
document.writeln(myArray);  // Gives 1,2,3,4,5,6,7,8,9

您甚至可以添加

等元素
var myArray = new Array()
myArray[0] = 10
myArray[1] = 20
myArray[2] = 30

您甚至可以更改值

myArray[2] = 40

打印订单

如果你想以相同的顺序,这就足够了。 Javascript按键值的顺序打印值。如果您以单调递增的键值在数组中插入值,那么除非您想要更改顺序,否则它们将以相同的方式打印。

页面提交

如果您使用的是JavaScript,则甚至无需将值提交到其他页面。您甚至可以通过操作DOM在同一页面上显示数据。

答案 3 :(得分:6)

你可以使用插入数据推送,这将按顺序进行

var arr = Array();
function arrAdd(value){
    arr.push(value);
}

答案 4 :(得分:5)

这是一个例子。您在文本框中输入一个数字(或其他),然后按“添加”将其放入数组中。然后按“show”将数组项显示为元素。

<script type="text/javascript">

var arr = [];

function add() {
   var inp = document.getElementById('num');
   arr.push(inp.value);
   inp.value = '';
}

function show() {
   var html = '';
   for (var i=0; i<arr.length; i++) {
      html += '<div>' + arr[i] + '</div>';
   }
   var con = document.getElementById('container');
   con.innerHTML = html;
}

</script>

<input type="text" id="num" />
<input type="button" onclick="add();" value="add" />
<br />
<input type="button" onclick="show();" value="show" />
<div id="container"></div>

答案 5 :(得分:4)

以下代码创建一个名为myCars的Array对象:

var myCars=new Array();

有两种方法可以为数组添加值(您可以根据需要添加任意数量的值来定义所需的变量)。

1:

var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";

您还可以传递一个整数参数来控制数组的大小:

var myCars=new Array(3);
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";

2:

var myCars=new Array("Saab","Volvo","BMW");

注意:如果在数组中指定数字或true / false值,那么变量的类型将是数字或布尔值而不是字符串。

访问数组

您可以通过引用数组的名称和索引号来引用数组中的特定元素。索引号从0开始。

以下代码行:

document.write(myCars[0]);

将产生以下输出:

Saab

修改数组中的值

要修改现有数组中的值,只需向具有指定索引号的数组添加新值:

myCars[0]="Opel";

现在,以下代码行:

document.write(myCars[0]);

将产生以下输出:

Opel

答案 6 :(得分:2)

请检查http://jsfiddle.net/GEBrW/进行实时测试。

您可以使用类似的方法创建动态数组。

var i = 0;
var a = new Array();

a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;
a[i++] = i;

结果:

a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
a[5] = 6
a[6] = 7
a[7] = 8

答案 7 :(得分:0)

刚刚初始化一个数组并推送该数组上的元素。 它会自动缩放数组。

var a = [ ];

a.push('Some string'); console.log(a); // ['Some string'] 
a.push('another string'); console.log(a); // ['Some string', 'another string'] 
a.push('Some string'); console.log(a); // ['Some string', 'another string', 'Some string']