我目前正试图弄清楚如何设计某种循环来顺序地将数据插入到数组中。我在Unity3D引擎中使用Javascript。
基本上,我想在数组中存储一堆坐标位置。每当用户点击屏幕时,我的脚本将获取坐标位置。问题是,我不确定如何将其插入数组中。
如何检查数组的索引以确定是否采用了数组[0],然后使用数组[1]?也许某种For循环或计数器?
由于
答案 0 :(得分:3)
要添加到数组的末尾,只需使用.push()。
var myArray = [];
var coord1 = [12,59];
var coord2 = [87,23];
myArray.push(coord1);
myArray.push(coord2);
myArray,现在包含两个项目(每个项目都是两个坐标的数组)。
现在,你不会这样做,如果你只是静态地声明我在这里所做的一切(你可以静态地声明整个数组),但我只是掀起了这个样本来向你展示推送是如何工作的将项添加到数组的末尾。
有关推送的参考文档,请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push。
如果以后在读取数组时需要知道数组的长度,可以使用.length属性。
var lengthOfArray = myArray.length;
答案 1 :(得分:0)
使用jfriend00建议的.push()
方法也是我的建议,但要回答有关如何计算下一个索引的问题,可以使用数组的length
属性。因为JavaScript数组是从零开始的length
属性将返回比当前最高索引高一的整数,所以如果你想在最后添加另一个项目,length
也将是使用的索引值:
anArray[anArray.length] = someValue; // add to end of array
要获取数组中的最后一个元素,您当然要说anArray[anArray.length-1]
。
请注意,对于大多数用途length
将给出数组中元素的数量,但我之前说“比当前最高索引高一个”,因为JavaScript数组很乐意跳过索引:
var myArray = [];
myArray[0] = "something";
myArray[1] = "something else";
myArray[50] = "something else again";
alert(myArray.length); // gives '51'
// accessing any unused indexes will return undefined