Javascript中有一个arraylist吗?

Nib*_*Pig 87 javascript

我有很多想要添加到数组中的东西,我不知道数组的大小是多少.我可以在javascript中执行类似于c#arraylist的操作,并myArray.Add(object);重复操作吗?

kem*_*002 136

只需使用array.push();

var array = [];


array.push(value);
Run Code Online (Sandbox Code Playgroud)

这将为其添加另一个项目.

取一个,使用 array.pop();

链接到JavaScript数组:https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array


Tra*_*s J 47

javascript中没有ArrayList.

然而,ArrayECMA 5.1具有与"ArrayList"类似的功能.这个答案的大部分是从Ecma-262 Edition 5.1,ECMAScript语言规范的HTML呈现中逐字逐句采用的.

定义的数组具有以下可用方法:

  • .toString ( )
  • .toLocaleString ( )
  • .concat ( [ item1 [ , item2 [ , … ] ] ] )
    当使用零个或多个参数item1,item2等调用concat方法时,它返回一个数组,该数组包含对象的数组元素,后跟每个参数的数组元素.
  • .join (separator)
    数组的元素将转换为字符串,然后连接这些字符串,由分隔符的出现分隔.如果未提供分隔符,则使用单个逗号作为分隔符.
  • .pop ( )
    数组的最后一个元素将从数组中删除并返回.
  • .push ( [ item1 [ , item2 [ , … ] ] ] )
    参数按照它们出现的顺序附加到数组的末尾.作为调用的结果,返回数组的新长度."
  • .reverse ( )
    重新排列数组的元素以便颠倒它们的顺序.该对象作为调用的结果返回.
  • .shift ( )
    数组的第一个元素从数组中删除并返回."
  • .slice (start, end)
    slice方法接受两个参数,start和end,并返回一个包含数组元素的数组,从元素start到(但不包括)element end(如果end未定义,则返回数组末尾).
  • .sort (comparefn)
    该数组的元素已排序.排序不一定稳定(即,比较相等的元素不一定保持原始顺序).如果comparefn未定义,则它应该是一个接受两个参数x和y的函数,如果x <y则返回负值,如果x = y则返回零,如果x> y则返回正值.
  • .splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
    当使用两个或多个参数start,deleteCount和(可选)item1,item2等调用splice方法时,从数组索引start开始的数组的deleteCount元素将被参数item1,item2等替换.Array对象包含已删除的元素(如果有)将返回.
  • .unshift ( [ item1 [ , item2 [ , … ] ] ] )
    参数前置于数组的开头,这样它们在数组中的顺序与它们在参数列表中出现的顺序相同.
  • .indexOf ( searchElement [ , fromIndex ] )
    indexOf使用内部严格等式比较算法(11.9.6)按照升序将searchElement与数组元素进行比较,如果在一个或多个位置找到,则返回第一个这样的位置的索引; 否则,返回-1.
  • .lastIndexOf ( searchElement [ , fromIndex ] )
    lastIndexOf使用内部严格等式比较算法(11.9.6)将searchElement按降序与数组元素进行比较,如果在一个或多个位置找到,则返回最后一个这样的位置的索引; 否则,返回-1.
  • .every ( callbackfn [ , thisArg ] )
    callbackfn应该是一个接受三个参数的函数,并返回一个可以强制转换为布尔值true或false的值.每个对数组中存在的每个元素按升序调用一次callbackfn,直到找到callbackfn返回false的值.如果找到这样的元素,则每个元素立即返回false.否则,如果callbackfn为所有元素返回true,则每个元素都返回true.
  • .some ( callbackfn [ , thisArg ] )
    callbackfn应该是一个接受三个参数的函数,并返回一个可以强制转换为布尔值true或false的值.有些调用callbackfn为数组中的每个元素按升序调用一次,直到找到一个callbackfn返回true的元素.如果找到这样的元素,则会立即返回true.否则,有些返回false.
  • .forEach ( callbackfn [ , thisArg ] )
    callbackfn应该是一个接受三个参数的函数.forEach按升序为数组中的每个元素调用一次callbackfn.
  • .map ( callbackfn [ , thisArg ] )
    callbackfn应该是一个接受三个参数的函数.map按升序对数组中的每个元素调用一次callbackfn,并从结果中构造一个新的Array.
  • .filter ( callbackfn [ , thisArg ] )
    callbackfn应该是一个接受三个参数的函数,并返回一个可以强制转换为布尔值true或false的值.filter按升序为数组中的每个元素调用一次callbackfn,并构造一个新的数组,其中包含callbackfn返回true的所有值.
  • .reduce ( callbackfn [ , initialValue ] )
    callbackfn应该是一个带有四个参数的函数.reduce作为函数调用回调,对于数组中存在的每个元素,按升序调用一次.
  • .reduceRight ( callbackfn [ , initialValue ] )
    callbackfn应该是一个带有四个参数的函数.reduceRight作为函数,以降序的顺序为数组中的每个元素调用一次回调.

还有长度属性.


Jas*_*att 22

使用javascript,所有数组都是灵活的.您可以简单地执行以下操作:

var myArray = [];

myArray.push(object);
myArray.push(anotherObject);
// ...
Run Code Online (Sandbox Code Playgroud)


Jon*_*noW 14

JS中的数组非常灵活,您可以这样做:

var myArray = new Array();
myArray.push("string 1");
myArray.push("string 2");
Run Code Online (Sandbox Code Playgroud)


ken*_*bec 6

你甚至不需要推动,你可以做这样的事情 -

var A=[10,20,30,40];

A[A.length]=50;
Run Code Online (Sandbox Code Playgroud)


kni*_*ttl 5

javascript使用动态数组,无需事先声明大小

您可以根据需要多次推送和转移到数组,javascript将为您处理分配和内容