在JavaScript中为现有数组添加新值

时间:2010-01-03 23:21:31

标签: javascript arrays

在PHP中,我会做类似的事情:

$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";

我如何在JavaScript中做同样的事情?

8 个答案:

答案 0 :(得分:375)

你不需要jQuery。使用常规javascript

var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');

注意:在javascript中,您也可以使用Objects as Arrays,但仍然可以访问Array原型。这使得对象的行为类似于数组:

var obj = new Object();
Array.prototype.push.call(obj, 'value');

将创建一个看起来像这样的对象:

{
    0: 'value',
    length: 1
}

您可以像普通数组f.ex obj[0]一样访问vaules。

答案 1 :(得分:106)

这与jQuery无关,只是JavaScript。

在JavaScript中创建数组:

var a = [];

或者:

var a = ['value1', 'value2', 'value3'];

要在现有数组的末尾附加值:

a.push('value4');

要创建新数组,您应该使用[]而不是new Array(),原因如下:

  • new Array(1, 2)相当于[1, 2],但new Array(1) 等同于[1]。相反,后者更接近[undefined],因为Array构造函数的单个整数参数表示所需的数组长度。
  • Array,就像任何其他内置JavaScript类一样,不是关键字。因此,有人可以轻松地在代码中定义Array来执行除构造数组之外的其他操作。

答案 2 :(得分:34)

Array是一个JavaScript本机对象,为什么不尝试使用它的API呢?当您切换到纯JavaScript或其他框架时,自己了解API将节省您的时间。

有许多不同的可能性,因此,请使用主要针对您需求的那种。

使用值创建数组:

var array = ["value1", "value2", "value3"];

将值添加到最后

var array = [];
array.push("value1");
array.push("value2");
array.push("value3");

将值添加到begin:

var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");

在某个索引处添加值:

var array = [];
array[index] = "value1";

或使用拼接

array.splice(index, 0, "value1", "value2", "value3");

选择一个你需要的。

答案 3 :(得分:12)

您可以使用.push()方法(标准JavaScript)

e.g。

var primates = new Array();
primates.push('monkey');
primates.push('chimp');

答案 4 :(得分:12)

有几种方法:

实例化数组:

var arr;

arr = new Array(); // empty array

// ---

arr = [];          // empty array

// ---

arr = new Array(3);
alert(arr.length);  // 3
alert(arr[0]); // undefined

// ---

arr = [3];
alert(arr.length);  // 1
alert(arr[0]); // 3

推送阵列:

arr = [3];     // arr == [3]
arr[1] = 4;    // arr == [3, 4]
arr[2] = 5;    // arr == [3, 4, 5]
arr[4] = 7;    // arr == [3, 4, 5, undefined, 7]

// ---

arr = [3];
arr.push(4);        // arr == [3, 4]
arr.push(5);        // arr == [3, 4, 5]
arr.push(6, 7, 8);  // arr == [3, 4, 5, 6, 7, 8]

使用.push()是添加到数组的更好方法,因为您不需要知道已有多少项,并且您可以在一个函数调用中添加许多项。

答案 5 :(得分:2)

array = ["value1", "value2", "value3"]

它不像javascript那样jquery

答案 6 :(得分:2)

实际上,您必须在使用array.push()命令行后立即初始化数组。

var array = new Array();
array.push("first value");
array.push("second value");

答案 7 :(得分:1)

jQuery是JavaScript的抽象。将jQuery视为JavaScript的子集,旨在使用DOM。话虽如此;有一些功能可以将项目添加到集合中。我会在你的情况下使用基本的JavaScript:

var array;

array[0] = "value1";
array[1] = "value2";
array[2] = "value3";

......或者:

var array = ["value1", "value2", "value3"];

......或者:

var array = [];

array.push("value1");
array.push("value2");
array.push("value3");