欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript 学习笔记 五 数组

程序员文章站 2022-03-28 13:48:55
...

 

//数组,包含有 pop,push 等类似与栈的操作,又有 slice, reverse,sort 这样类似与列表的操作
var arr = new Array(1,1,1,2,3,1);
arr.sort();alert(arr);//排序 sort不关注数组中的内容是数字还是字母,它仅仅是按照字母的字典序来进行排序
arr.sort(function(a, b){return a - b;});alert(arr);//正序排序,自定义规则排序 针对数字
arr.sort(function(a, b){return b - a;});alert(arr);//逆序排序,自定义规则排序 针对数字

arr.length = 3;alert(arr);//这个变量并非只读属,通过设置length 属性来将数组元素裁减

var array = ["one", "two", "three", "four"];//字面量方式来创建
var array2 = ["yet", "another", "array"];
var newArr = arr.concat(array,array2);//拼接

alert(newArr.slice(2,4));// 提取 newArr 数组中从第2个后面的开始到第4个之间的元素
var ssArr = newArr.slice(2);
newArr.splice(2,4);alert(newArr);//第二个开始删除 4个元素
newArr.splice(2,0,"aa","bb");alert(newArr);//第二个开始删除0个元素,并添加后面的元素
var str = array.join("|");//把数组以 | 来拼接成字符串
alert(str);

//删除元素,以后数组就拥有了删除元素的功能
//影响整个原型链
Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
};
array.remove(2);
alert(array);

//不影响整个原型链,调用的时候需要显示的调用
//相当于给 JavaScript 内置的 Array 添加了一个静态方
Array.remove = function(array, from, to) {
    var rest = array.slice((to || from) + 1 || array.length);
    array.length = from < 0 ? array.length + from : from;
    return array.push.apply(array, rest);
}
Array.remove(array,0,2);//删除0, 1, 2三个元素
//注意点:    除非必要,尽量不要对全局对象进行扩展,因为对全局对象的扩展会造成所有
//                继承链上都带上“烙印”,而有时候这些烙印会成为滋生 bug 的温床。

转载于:https://my.oschina.net/edwin0/blog/896141