/**
* 数组Array
* 同一个数组中可以包含不同类型对象,数组下标从0开始
* concat() 连接俩个或更多数组,返回结果
* join() 把数组所有元素放入一个字符串。元素通过指定分隔符分隔。
* pop() 删除并返回数组的最后一个元素
* push() 向数组末尾添加一个或更多元素,并返回新的长度
* reverse() 颠倒数组中元素的顺序
* shift() 删除并返回数组的第一个元素
* slice() 从某个已有的数组返回选定的元素(截取),不影响原数组
* sort() 对数组的元素进行排序(默认是按照ASCII 字符顺序进行升序排列)
* splice() 删除元素,并向数组添加新元素
* unshift() 向数组开头添加一个或更多元素,并返回新的长度
* valueOf() 返回数组对象的原始值
*/
//length属性(读/写)
var TestLen = new Array(1,2,3,4,5);
//alert(TestLen.length);
TestLen.length = 3;
//alert(TestLen); //超过length的元素舍弃
//数组下标可使用数字和字符串(作为对象属性来使用)
var TestIndex = new Array();
TestIndex['first'] = 'First Object';
TestIndex['second'] = 2;
TestIndex['third'] = new Date();
//alert(TestIndex.second+"*****"+TestIndex.third);
//数组声明
var array1 = new Array();// or var array1 = [];
var array2 = new Array("one","two","three","four","five");// or var array2 = ["one","two","three","four","five"];
//push在数组末尾添加数据
array1.push(1);
array1.push("1");
var Len=array1.push("a");
//alert(Len+"*****"+array1);
//unshift在数组开头添加数据
Len =array1.unshift(2);
//alert(Len+"*****"+array1);
//pop删除并返回数组最后一个元素
var arrayObj = array1.pop();
//alert(arrayObj+"*****"+array1);
//shift()删除并返回数组第一个元素
arrayObj = array1.shift();
//alert(arrayObj+"*****"+array1);
//join
var joinStr = array2.join("|");
//alert(joinStr);
//reverse
array2.reverse();
//alert(array2);
//concat
var bigArray = array1.concat(array2);
//alert(bigArray);
//slice(a,b),截取下标从a到b的的元素(包括a、不包括b);slice(a),截取下标从a到length的元素
var shortArray = bigArray.slice(2,5);
//alert(shortArray);
//splice(a,b),删除从a下标开始的b位长度元素(包括a)
bigArray.splice(1,6);
//alert(bigArray);
bigArray.splice(0,1,10,22,3,142,252,263); //从0下标开始,替换一个元素,并添加10-263的子数组到原数组
//alert(bigArray);
//sort(func)可传入一个函数作为排序依据(函数形式function(a,b),函数返回值大于0,则数组第一个元素a与第二个元素b对调位置--依次类推;小于等于0数组顺序不变)
//alert(bigArray.sort());
//alert(bigArray.sort(function(a,b){return a-b}));//顺序(从小到大)
//alert(bigArray.sort(function(a,b){return b-a}));//倒序
//alert(bigArray.sort(function(){return Math.random()>0.5?-1:1;})); //乱序
var searchArray=['df', 'rtr', 'wy', 'dafd', 'dfs', 'wefa', 'tyr', 'rty', 'rty', 'ryt', 'afds', 'wer', 'te'];
//alert(searchArray.sort(function(a,b){return a.indexOf('a')==-1?1:-1;})); //把包含a字符的元素都放在了数组前面(搜索)
//删除方法(自定义),remove(begin)时删除下标为begin的元素,remove(begin,end)时删除下标从begin到end的子数组(包括begin、end)
Array.prototype.remove = function(begin,end){
var rest = this.slice((end||begin)+1||this.length);
this.length = begin<0?this.length+begin:begin;
return this.push.apply(this,rest);
};
//searchArray.remove(3);
searchArray.remove(3,5);
//alert(searchArray);
//for遍历数组
//会遍历新加的原型属性(如remove)
for(var item in bigArray){
alert(bigArray[item]);
};
//Array.prototype.11= function(){return "cc";}; 为什么不能为数字?
//不会遍历新加的原型属性(属性名不为数字)
for(var i =0;i<bigArray.length;i++){
alert(bigArray[i]);
};