在小程序中大量使用了数组和数组方法,有些代码从C/C++程序员的观点来看时会相当费解,我们暂且放下小程序的说明,尽量简单地说明一下数组的使用方法。


ECMAScript3数组操作方法


格式化输入数组


可以指定输出是各个元素之间的连接字符串。

a = [2017, 8, 29];
a.jion("/"); //输出结果:”2017/8/29“


颠倒元素的顺序

a = [1, 2, 3];
a.reverse(); // =>a = [3, 2, 1]


数组排序


a = [2017, 8, 29];
a.sort(); //=>a = [8, 29, 2017]


可以通过传递比较函数定制排序规则.


a = [2017, 8, 29];
a.sort(function(a, b){
return b - a; //降序
}
); //=>a = [2017, 29, 8]

数组连接


a = [1, 2, 3];
a.concat(4, 5); //=>a = [1, 2, 3, 4, 5]
a.concat([6,7],[8, 9, 10]); //a= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


取得数组片段

a = ["A", "B", "C", "D", "E"];

//指定开始位置,结束位置(不包含)。
a.slice(0, 2); //返回["A", "B”]

//只指定开始位置,
a.slice(3); //返回["D", "E”]

//指定开始位置,从最后一个元素计算的结束位置
a.slice(-5, -3); //返回["A", "B”]


指定区间替换数组元素


a = [1, 2, 3, 4, 5];

//将从第2个元素(索引值为1)开始的2个元素,
//替换成splice第3个参数开始后面的3个元素
b = a.splice(1, 2, "A", [10,20], "B”);


这段程序执行之后数组a的内容为[1, "A",[10,20],"B",4,5],返回值的数组b为[2, 3]。如果只指定第一个参数则从源数组中切分并返回指定位置以后的所有元素;如果指定前两个参数,则相当于从源数组中抠出一部分返回。


在尾部添加和删除元素

a = [1, 2, 3];
a.push(4, 5); //=>a = [1, 2, 3, 4, 5]
a.pop(); //=>a = [1, 2, 3, 4];


在头部插入和删除元素


a = [1, 2, 3]
a.unshift(4, 5, 6);//=>a=[4, 5, 6, 1, 2, 3]
a.shift(); //=>a=[5, 6, 1, 2, 3]


将数组转换成字符串



参考资料


【JavaScript权威指南,机械工业出版社】





阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】



EA&UML日拱一卒-0基础学习微信小程序(11)-ECMAScript3数组操作方法_小程序