在JavaScript中向现有数组添加新值
在PHP中,我会执行以下操作:在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中,您也可以
$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]
构造函数的单个整数参数指示所需的数组长度数组
,就像任何其他内置JavaScript类一样,不是关键字。因此,有人可以很容易地在代码中定义Array
,而不是构造数组数组
与其说它是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();