一、 学好JavaScript的基础,Array类是必不可少的,也许你每天都在写JS,那么对于Array类,你到底用了多少呢?下面列举一下Array类内置的方法:
1、构造方法:
- var a = new Array();
-
var a = new Array;
-
var a = new Array(10);
-
-
var a = new Array("a","b","c");
-
var a = ["a","b","c"];
-
-
var a =[["a","b","c"],[1,2,3]];
var a = new Array(); //创建Array对象
var a = new Array;//创建Array对象
var a = new Array(10);//创建Array对象,并指定数组中项的个数
var a = new Array("a","b","c"); //数组a,b,c
var a = ["a","b","c"];//数组a,b,c
var a =[["a","b","c"],[1,2,3]];//多维数组
2、toString、valueOf
-
-
var a =["a","b","c"];
-
var s = a.toString();
- alert(s);
-
var s2 = a.valueOf();
- alert(s2);
//把数组转化为","号隔开的字符串?很简单:
var a =["a","b","c"];
var s = a.toString();
alert(s);
var s2 = a.valueOf();
alert(s2);
3、join
-
-
var a =["a","b","c"];
-
var s = a.join("-");
- alert(s);
//厌倦了","号隔开的字符串?那么:
var a =["a","b","c"];
var s = a.join("-");//想用什么隔开呢?在这里写吧,当然","也是可以的
alert(s);
-
-
var s = "a-b-c";
-
var a =s.split("-");
- alert(a);
//反悔了?倒过来把字符串转化为数组?
var s = "a-b-c";
var a =s.split("-");
alert(a);
-
-
var a1 = new Array(1,2,3);
-
var a2 = new Array("a","b","c");
-
var a3 = a1.concat(a2);
- alert(a3);
//用for循环来合并?没那么麻烦
var a1 = new Array(1,2,3);
var a2 = new Array("a","b","c");
var a3 = a1.concat(a2);
alert(a3);
6、splice
-
-
var a1 = new Array(1,2,3);
-
var a2 = new Array("a","b","c");
-
var a3 = a1.concat(a2);
- alert(a3);
-
var a4 = a3.splice(1,2);
-
alert(a3+" "+a4);
//删除?很灵活
var a1 = new Array(1,2,3);
var a2 = new Array("a","b","c");
var a3 = a1.concat(a2);
alert(a3);
var a4 = a3.splice(1,2); //从a3中删除从下标为1开始的2项,返回删除的结果给a4
alert(a3+" "+a4);
-
-
var a1 = new Array(1,2,3);
-
var a2 = a1.push(4);
-
alert(a1+" "+a2);
-
var a3 = a1.pop();
-
alert(a1+" "+a3);
//栈的数据结构要自己来写?不需要
var a1 = new Array(1,2,3);
var a2 = a1.push(4); //顶部压入4,返回压入的对象
alert(a1+" "+a2);
var a3 = a1.pop(); //顶部弹出顶部第一个对象,返回弹出对象
alert(a1+" "+a3);
8、shift、unshift
-
-
var a = new Array(1,2,3);
-
var i1 = a.shift();
-
alert(i1+" "+a);
-
var i2 = a.unshift(1);
-
alert(i2+" "+a);
//倒转栈结构?来得更轻松
var a = new Array(1,2,3);
var i1 = a.shift(); //删除数组的第一项,将其作为函数返回值
alert(i1+" "+a);
var i2 = a.unshift(1); //加入一项放在数组的第一个位置,原来的项分别往下移一个位置
alert(i2+" "+a);
9、sort,reverse
-
-
var a = new Array(1,2,6,3,9,5,7);
- a.sort();
- alert(a);
-
var a = new Array(1,2,6,3,9,5,27);
- a.sort();
- alert(a);
-
- a.reverse();
- alert(a);
//排序?简单,但是它是按照字符串排序的哦尽管是数字
var a = new Array(1,2,6,3,9,5,7);
a.sort();
alert(a);
var a = new Array(1,2,6,3,9,5,27);//注意这里排序会让你意外哦[1,2,27,3,5,6,9]
a.sort();
alert(a);
//想倒序?
a.reverse();
alert(a);
10、再论splice
-
-
var a =["a","d","e"];
-
a.splice(1,0,'b','c');
- alert(a);
-
a.splice(3,2,'dd','ee');
- alert(a);
//第6条中已经说明了它的删除功能,它还能插入、替换
var a =["a","d","e"];
a.splice(1,0,'b','c'); //在位置1(即d)处删除0个项,并插入['b','c'],即插入
alert(a);
a.splice(3,2,'dd','ee'); //在位置3处删2个项,并插入['dd','ee'],即替换
alert(a);
二、再看看判断一个对象是否为Array对象的方法
- isArray: function(object) {
-
return object != null && typeof object == "object" &&
-
'splice' in object && 'join' in object;
- }
isArray: function(object) {
return object != null && typeof object == "object" &&
'splice' in object && 'join' in object;
}
这个是抄袭prototype的,看看吧,对象不为空且对像类型为object且该对象有splice方法和join方法。也对对你有所启发,毕竟JS有它的特色。
三、一些有用的扩展:
- <input type="button" value="测试获取数组下标" onclick="testIndexOf()" />
- <script>
-
-
if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
- i || (i = 0);
-
var length = this.length;
-
if (i < 0) i = length + i;
-
for (; i < length; i++)
-
if (this[i] === item) return i;
-
return -1;
- };
-
-
function testIndexOf()
- {
-
var a =[1,2,3];
- alert(a.indexOf(2));
- }
<input type="button" value="测试获取数组下标" onclick="testIndexOf()" />
<script>
// use native browser JS 1.6 implementation if available
if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
i || (i = 0);
var length = this.length;
if (i < 0) i = length + i;
for (; i < length; i++)
if (this[i] === item) return i;
return -1;
};
function testIndexOf()
{
var a =[1,2,3];
alert(a.indexOf(2));
}
上面的举例获取数组中某项的下标,还有像:把数组里的项唯一化(uniq)、最后一个位置(lastIndexOf)等等,你都可以扩展。并且你可以借鉴prototype的库,mootools的库等等,里面的有些写法很是经典,可以学习学习。
相关推荐
HTML开发中的Javascript中Array 对象相关的几个方法学习总结
主要介绍了Javascript实现Array和String互转换的方法,涉及JavaScript中toString方法与split方法的使用技巧,需要的朋友可以参考下
javascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array list into setjavascript array ...
JS中Array数组学习总结.docx
里面有三个js文件,都是需要引入的。具体的方法,可以看源码。
js中array的sort()方法使用介绍.docx
js中Array.forEach跳出循环的方法实例.docx
javscript中json对象和Array数组的区别
javaScript,重写Array 类似java map的key,value键值对结构
javaScript:将Array数组分页处理,支持分页数据容错; js文件:Page4array分页处理工具类; 兼容版本ES6。 博文:https://blog.csdn.net/HTouying/article/details/88898258
这一篇就可以学会JavaScript Array 数组对象方法
js的in_array函数
自己设计的用JavaScript实现Array 和Map 里面有三个Js文件,都需要引入.
本文实例讲述了Javascript中Array用法。分享给大家供大家参考。具体分析如下: JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#、Java中“数组、List、HashMap/Dictionary”等的超强综合体。 ...
本文实例讲述了JavaScript中Array对象用法。分享给大家供大家参考,具体如下: Array数组对象有很多常用的方法和属性,现总结如下: 1. length属性,获取数组中元素的个数。 2. concat()方法,连接两个数组。将两个...
NULL 博文链接:https://caryjava.iteye.com/blog/1317773
于是我写了这篇文章,总结了如何在 JavaScript 中正确使用地使用 Array 的方法! Array对象为JavaScript内置对象,具有以下属性: 属性 描述 constructor 返回对创建此对象的数组函数的引用。 length 返回...
简单的介绍array的基本用法. 注:不是ArrayList!
10 Special Array Antenna Configurations 269 10.1 Conformal Array and Phased Array Antennas 269 10.1.1 Circular Sector Array and Phased Array Antenna 270 10.2 Volume Array and Phased Array Antennas 276...
在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活、强大,不像是Java等强类型高级语言数组只能存放同一类型或其子类型...