JavaScript基础之Array,你精通了吗?
来源:互联网 发布:淘宝c店和天猫的区别 编辑:程序博客网 时间:2024/05/29 08:33
一、 学好JavaScript的基础,Array类是必不可少的,也许你每天都在写JS,那么对于Array类,你到底用了多少呢?下面列举一下Array类内置的方法:
1、构造方法:
- 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);
3、join
- //厌倦了","号隔开的字符串?那么:
- var a =["a","b","c"];
- var s = a.join("-");//想用什么隔开呢?在这里写吧,当然","也是可以的
- alert(s);
4、split
- //反悔了?倒过来把字符串转化为数组?
- var s = "a-b-c";
- var a =s.split("-");
- alert(a);
5、concat
- //用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); //从a3中删除从下标为1开始的2项,返回删除的结果给a4
- alert(a3+" "+a4);
7、push、pop
- //栈的数据结构要自己来写?不需要
- 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);
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);//注意这里排序会让你意外哦[1,2,27,3,5,6,9]
- a.sort();
- alert(a);
- //想倒序?
- a.reverse();
- alert(a);
10、再论splice
- //第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;
- }
这个是抄袭prototype的,看看吧,对象不为空且对像类型为object且该对象有splice方法和join方法。也对对你有所启发,毕竟JS有它的特色。
三、一些有用的扩展:
- <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的库等等,里面的有些写法很是经典,可以学习学习。
四、要干活了,不再罗嗦:
上面罗嗦了一堆,想说明的不外乎两点:1、注重JS基础,别云里来雾里去;2、学习经典库的写法,借鉴总是能帮你少走一些弯路,但是走走弯路也是挺好好处,自己掂量掂量吧。
- JavaScript基础之Array,你精通了吗?
- Javascript 基础之Array对象
- 今天,你精通css了吗?
- JavaScript基础(3)之数组Array-1
- 《精通 JavaScript》出版了
- JavaScript基础-Array
- JavaScript基础-集合-Array
- javaScript基础:Array类型
- javascript基础:Array对象
- javascript基础--Array
- 让你一夜之间精通JavaScript
- 精通Javascript之引用
- 精通Javascript 之 继承
- JavaScript之数组Array
- javascript对象之Array
- javascript之Array
- javascript----Array之Sort()
- JavaScript之Array数组
- NSString setString的用法:彻底更换
- 打造一个基于OSGi的Web Application——增加日志输出功能
- log4j 日志打印 配置
- iOS: best tutorial of splitview + popover + custom input view
- poj 2339 Rock, Scissors, Paper
- JavaScript基础之Array,你精通了吗?
- 开源语音识别软件
- request_mem_region,ioremap
- LINUX 可执行程序一运行直接core掉问题解决
- 《Excel表格的基本操作》163招技巧]
- 如果不讲信用,那就是在透支未来。
- tomcat 启动报错 java.lang.Exception: Socket bind failed
- Struts2配置文件讲解
- Davinci encode分析(DM355)