日期:2014-05-16 浏览次数:20330 次
?
//数组,包含有 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 的温床。