J**aScript对数组存储容量有限制吗?

时间:2014.10.02 发布人:z364334624

J**aScript对数组存储容量有限制吗?

已解决问题

谷歌z364334624用户在2014.10.02提交了关于“宝马x3J**aScript对数组存储容量有限制吗?”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-27T22:06:28。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,感谢你,我会记得你对我的好的 !

希望以下的回答,能够帮助你。

第1个回答

用户名:hsrthpv49  

来自J**ascript自身提供了一些操作,可以对数组331215问答实现一定的处理,例如排序、连接、堆栈等等,下面做一下简单的介绍。

1,concat(arra投乱酸局致轩毛九yName2,arrayName3,…,arrayNameN),将数组本身和另外一个或多个数组进行连接,例如:
vararr1=[”a装言放亮身浓织”,”c”];
vararr材选刘景海氧到宜批2=[”b”,”d”];
vararr22=[”e”,”f”济事热龙效接展终亲];
vararr3=**丰因连衡曲燃子祖*.concat(arr2,arr22);
***.write(arr3);//结果显示为:a,c,b,d,治用e,f

2,join(separator),通过间隔符取值革称吧宁扬将数字连接为字符线这深华子官四足沉即无串,例如:
vararr1=[”a”,”b”,”c”,”d”,”e”];
vararr1Str=***.join(”-”);
***.write(arr1Str);//结果显示为:a-b-c-d-e

3,pop()/push(element1,…,elementN),实现了堆栈的操作,push是入栈,pop是出栈,例如:
vararr1=[”a”,”犯问排星原b”];
***.push(”c”,”d”);
***.write(arr1);//结果为:a,b,c,d
varval烧早丰减原请许ue=***.pop();
***.write(value);//结果为:d

4,revers住往齐坏e(),将数组反向排序,例如:
vararr1=[”a”,”b”,”c”];
***.reverse();
***.write(arr1);//结果为:c,b,a

5,sort(compareFunction),按照指定的排序规则进行排序,如果参数为空,则按照默认的字母和数字进行排序,例如:
functionmySort(o1,o2){
if(***.length>o2){
return试苏血光1;
}
return-1;
}
vararr1=[”a”,”c”,”bd”];
***.sort();
***.write(arr1);//结果为:a,bd,c
***.sort(mySort);
***.write(arr1);/蛋植理充玉/结果为:bd,c,a

6,shift()/unshift,销境通刑找将数组的第一个值取出(或者将值插入到数组第一个长牛钟各化括面胞南预位置),并且数组长度缩短(加长),例如:
vararr1=[”a”,”b留集望赵艺分”,”c”];
varvalue=***.shift();
***.write(value);//输出为:a
***.write(arr1);//输出为:b,c
varvalue2=***.致说电干背唱万没处损unshift(”g”);
***.write(value);//IE输出为undefined,Firefox输出为3
***.write(arr1);//输出为:g,b,c

7,slice(beg胡in[,end]),类似字符串的substring方法,就是截取数组,例如:
vararr1=[”a”,”b”,”c”];
vararr2=***.slice(0,2);
***.write(arr2);//输出为:a,b

8,splice(index,howMany,[element1][,…,elementN]),从指定的位置(index)开始,删除后面多个(howMany)数组的值,并从删除处开始依次插入新的值,例如:
vararr1=[”a”,”b”,”c”];
***.splice(1,1,”m”,”n”,”o”);
***.write(arr1);//输出为:a,m,n,o,c

应该说,J**ascript本身对数组提供的操作能力,还是不错的,但是在实际应用中,我们需要对数组做更多的操作,例如J**a、Ph**P、.NET中对数组都提供了强大的操作能力,而且许多优秀的开源项目中,也提供了对数组的许多操作,但是J**ascript这方面还需要进一步加强。

为了对数组提供更多的操作,JsJ**a定义了许多类,来加强对数组的操作,介绍如下:

1,jsj**a.***.arrays类,仿照J**a的Arrays类,对数组提供了一些高效的操作,例如:
varlist=***.aslist([”a”,”b”,”c”]);//通过数组创建一个不可变的列表
而且通过binarySearch,提供了二分法搜索的一个实现,其它的请参考JsJ**aDoc

2,jsorg.***.lang.arrayutils类,该类的实现是参考Apache优秀的commons-lang开源项目实现的,实现其中的所有功能,例如对数组进行插入、删除、搜索、填充、截取等等,例如:
vararr=***.clone([0,1,2,9,0]);
***.write(arr+”<br>”);
***.write(***.subarray(arr,0,3)+”<br>”);
***.reverse();
***.write(arr);
显示结果为:
0,1,2,9,0
0,1,2
0,9,2,1,0

3,jsorg.***.multidimensionarrayutils类,该类实现了对多维数组的创建支持,例如可以方便创建二维和三维数组,具体可以参考文章《在J**ascript之中如何创建多维数组》

4,org.***.math.linear.realmatriximpl类,实现对矩阵的操作,矩阵实际上就是多维数组,即实现了对多维数组的支持,例如可以实现多维数组的加、减、乘、除等操作,还有数学运算中对矩阵的其它操作,具体可以参考JsJ**aDoc。

JsJ**a是对J**ascript语言最好的扩展和延伸,它与目前流行的***.js的方向是不一样的,如果你正在构建web应用,那么JsJ**a将是你界面应用最好的支撑。