Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中向现有数组添加新值_Javascript_Arrays - Fatal编程技术网

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

在JavaScript中向现有数组添加新值,javascript,arrays,Javascript,Arrays,在PHP中,我会执行以下操作: $array = array(); $array[] = "value1"; $array[] = "value2"; $array[] = "value3"; 如何在JavaScript中执行相同的操作?您不需要jQuery。使用常规javascript var arr = new Array(); // or var arr = []; arr.push('value1'); arr.push('value2'); 注意:在javascript中,您也可以

在PHP中,我会执行以下操作:

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

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

您不需要jQuery。使用常规javascript

var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');
注意:在javascript中,您也可以使用对象作为数组,但仍然可以访问数组原型。这使对象的行为类似于数组:

var obj = new Object();
Array.prototype.push.call(obj, 'value');
将创建一个如下所示的对象:

{
    0: 'value',
    length: 1
}

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

一样访问这些变量。您可以使用
.push()
方法(这是标准的JavaScript)

e、 g


这与jQuery无关,只是一般的JavaScript

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

var a = [];
或:

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

a.push('value4');
要创建新阵列,您应该真正使用
[]
而不是
new array()
,原因如下:

  • 新数组(1,2)
    等同于
    [1,2]
    ,但
    新数组(1)
    不等同于
    [1]
    。后者更接近于
    [undefined]
    ,因为
    数组
    构造函数的单个整数参数指示所需的数组长度
  • Array
    ,就像任何其他内置JavaScript类一样,不是关键字。因此,有人可以很容易地在代码中定义
    数组
    ,而不是构造数组

与其说它是jquery,不如说它是javascript的抽象。将jQuery视为JavaScript的子集,旨在使用DOM。话虽如此,;有用于将项添加到集合的函数。不过,我会在您的案例中使用基本JavaScript:

var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');
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");
。。。或:

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

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

数组是一个JavaScript本机对象,为什么不尝试使用它的API呢?了解API本身可以节省您切换到纯JavaScript或其他框架时的时间

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

正在使用值创建数组:

var array = ["value1", "value2", "value3"];
在末尾添加值

var array = [];
array.push("value1");
array.push("value2");
array.push("value3");
将值添加到开始:

var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");
在某些索引处添加值:

var array = [];
array[index] = "value1";
或者使用拼接

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

选择一个你需要的。

有几种方法:

实例化数组:

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]
推送到阵列:

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

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

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

我称之为“框架”。。。而且它也不是一个子集。在第一个示例中,您应该将
数组
变量初始化为
数组
对象,否则它将是
未定义的
,并且您不能调用
推送
。@Ionut G.Stan:我通过执行
var array=[]来初始化数组@Mark:我把jQuery称为一个库。它是这样宣传的,而不是作为一个框架。@roosteronacid,我指的是第一个例子。我不知道在我之前的评论中,
push
的观察是如何滑落的。我不知怎么地把第一个和第三个例子混在了一起;JavaScript是。@ChrisB-对于那些好奇的人来说,JavaScript是用来实现光荣JQuery的语言。我是唯一一个可以决定形容词对名词的属性的人。你可以使用一个函数来动态解决:animationList[addkey()]function addkey(){var t=ac;ac++;console.log(t);return t;}这正是
$()
返回的“jQuery”对象的工作方式。我确信有一个插件可以让你用jQuery实现这一点:PHow about
[]
而不是
new Array()
{}
而不是
new object()
。@J-P:当然,为什么不呢。贾斯汀:事实上,它稍微快一点:(第21张幻灯片之后)这不是在数组中添加任何值,而是创建一个已经包含一些值的数组。我不会对此投反对票,但至少要感谢你解释你对
[]
而不是
新数组()
。有索引的那个不适合我。我在一个映射函数$('select[id^=“filter"]).map(函数(){var name=$(this.prop('name');filters[name]=$(this.val();