在javascript中向现有数组添加新值

Add new value to an existing array in JavaScript

本问题已经有最佳答案,请猛点这里访问。

在php中,我会做如下操作:

1
2
3
4
$array = array();
$array[] ="value1";
$array[] ="value2";
$array[] ="value3";

我如何在javascript中执行相同的操作?


您不需要jquery。使用常规的javascript

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

注意:在JavaScript中,您也可以将对象用作数组,但仍然可以访问数组原型。这使对象的行为类似于数组:

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

将创建一个如下所示的对象:

1
2
3
4
{
    0: 'value',
    length: 1
}

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


这与jquery无关,只是一般的javascript。

要在javascript中创建数组,请执行以下操作:

1
var a = [];

或:

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

要在现有数组的结尾追加值,请执行以下操作:

1
a.push('value4');

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

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


数组是一个javascript本地对象,为什么不尝试使用它的API呢?单独了解API将节省您切换到纯JavaScript或其他框架的时间。

有许多不同的可能性,所以,使用一个主要针对你的需要。

使用值创建数组:

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

在末尾添加值

1
2
3
4
var array = [];
array.push("value1");
array.push("value2");
array.push("value3");

开始添加值:

1
2
3
4
var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");

在某个索引处添加值:

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

或者使用拼接

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

选择一个你需要的。


有几种方法:

实例化数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

推到阵列:

1
2
3
4
5
6
7
8
9
10
11
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()是添加到数组中的更好方法,因为您不需要知道已经有多少项,并且可以在一个函数调用中添加多个项。


您可以使用.push()方法(这是标准的javascript)

例如

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

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

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


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

它不像javascript那么多jquery


jquery是JavaScript的抽象。把jquery想象成一个子集javascript,目的是使用DOM。也就是说,有向集合添加项的函数。不过,在您的案例中,我将使用基本的javascript:

1
2
3
4
5
var array;

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

…或:

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

…或:

1
2
3
4
5
var array = [];

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