在JavaScript中,如果将数组设置为大小为5(var foo = new Array(5);
),这只是初始大小吗?可以在创建后扩展元素数量。是否有可能做这样的事情 - arr = new Array()
然后只是逐个分配元素?在此先感谢: - )
答案 0 :(得分:5)
是的,它只是一个初始大小,并不是必需的。如果您不使用单个数字,则可以立即填充。
使用更简单的[]
语法也更常见。
var arr = ['something', 34, 'hello'];
您可以使用括号设置(或替换)特定索引:
arr[0] = "I'm here replacing whatever your first item was";
您可以使用push添加到最后:
arr.push('add me');
如果您这样做,可能会在某些浏览器中获得更快的性能:
arr[arr.length] = 'add me';
您可以在任何索引处添加内容。
您可以使用拼接完全删除项目:
arr.splice(0, 1); // remove first item in the array (start at index 0, with 1 being removed)
答案 1 :(得分:5)
如果在javascript中为新数组指定显式大小(使用new Array(5)
),则使用值undefined
填充每个索引。通常认为使用数组文字[]
表达式进行实例化是更好的做法:
var arr = [];
然后,您可以使用push()
var arr = [];
arr.push('first value'):
arr.push('second value'):
查看MDC阵列文档以获取更多信息:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array
答案 2 :(得分:2)
有几种方法可以在数组中声明和放置值。
首先喜欢你想做的事,
var myarr = new Array();
myarr[0] = 'element1';
myarr[1] = 'element2';
myarr[2] = 'element3';
第二种方法是定义它们
var myarr =new Array("element1","element2","element3");
和第三个类似于第二个
var myarr =["element1","element2","element3"];
您还可以查看https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array以获取有关使用阵列的更多信息。你也可以使用push和pop。
如果使用jquery或mootools,它们还具有在数组上执行的内置函数, 例如http://api.jquery.com/jQuery.each/。
答案 3 :(得分:1)
查看http://www.w3schools.com/js/js_obj_array.asp
var myCars=new Array(); // regular array (add an optional integer
myCars[0]="Saab"; // argument to control array's size)
myCars[1]="Volvo";
myCars[2]="BMW";
答案 4 :(得分:1)
检查the documentation for Array,但问题的简单答案是是。
var arr5 = new Array(1, 2, 3, 4, 5); // an array with initial 5 elements
var arr = new Array(); // an array without initial
您还可以使用数组文字:
var arr5 = [1, 2, 3, 4, 5];
var arr = [];
答案 5 :(得分:0)
数组中的数组是动态的。您不必以一定长度初始化它们。实际上你应该使用文字符号[]
,因为Array
构造函数的含糊不清:
如果只将一个参数传递给Array
,它会将数组长度设置为此参数。如果传递多个参数,则会将这些元素添加到数组中。
如何确定数组的大小?
数组的大小是最高的索引+ 1.这可能非常令人困惑。考虑一下:
var arr = [];
arr[41] = 'The answer?';
console.log(arr); // [undefined, undefined, ..., 'The answer?']
console.log(arr.length) // 42
您甚至可以通过为.length
分配号码来自行设置长度:
arr.length = 99;
如果您现在使用arr.push()
添加新元素,它将获得索引100
并且长度将增加。无论何时通过索引向元素添加元素,都会测试arr.length
是否小于索引并进行相应更新。但它不会变小。
事实上,var arr = new Array(5)
正在做的是将数组的长度设置为5
。没别了。
有关创建和填充数组的更多信息,我建议您在MDC JavaScript Guide中阅读它。