数组大小如何在Javascript中工作

时间:2011-06-03 20:12:32

标签: javascript arrays

在JavaScript中,如果将数组设置为大小为5(var foo = new Array(5);),这只是初始大小吗?可以在创建后扩展元素数量。是否有可能做这样的事情 - arr = new Array()然后只是逐个分配元素?在此先感谢: - )

6 个答案:

答案 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中阅读它。