/*
* Array类型
*
Array类型是ECMAScript中最常用的类型.诸多其它语言中,数组都是有序的,数组元素类型也是固定的.但是ECMAScript的
数组元素可以为任何类型,数组的大小也是可变化的.
创建Array类型有两种方式:new运算符,字面量
1.使用new关键字创建数组
var box = new Array(); //创建了一个数组
var box = new Array(10); //创建了一个包含10个元素的数组
var box = new Arrar('小明',22,'学生','杭州'); //创建一个已经分配好元素的数组
2.省去new运算符创建数组
var box = new Array();
3.使用字面量创建数组
var box = []; //创建一个空的数组
var box = ['小明',22,'学生','杭州']; //创建包含元素的数组
var box = [1,2,]; //禁止这么做,这样IE在解析的时候会识别成有三个元素。
PS:和Object一样,字面量的写法不会调用Array()构造函数。(Firefox除外)
4.使用索引下标来读取数组的值
alert(box[2]); //获取第三个元素
box[2] = '管理员'; //修改第三个元素的值
box[4] = '计算机编程'; // 增加第五个元素
5.alert(box.length); //获取数组的长度
box.length = 10; //强制数组的长度等于10;
box[box.length] = '新增元素'; //新增元素
6.创建一个复杂的数组
var box = [
{
name : '小明';
age : 20;
run : function(){
return '函数运行了';
}
}, //第一个元素是一个对象
['小明','小花',‘小红’,new Object()], //第二个元素是数组
'浙江', //第三个元素是一个字符串
24+24, //第四个元素是数值
new array() //第五个元素是数组
];
alert();
转换方法
//对象中的方法
var box = ['小明',22,'学生']; //字面量数组
alert(box); //隐式调用了toString 小明,22,学生
alert(box.toString()); //小明,22,学生
alert(box.toLocaleString()); //小明,22,学生
alert(box.valueOf()); //小明,22,学生
var box = ['小明',22,'学生']; //字面量数组
alert(box.join('_')); //默认情况下数组字符串是以逗号隔开,使用join()方法,可以使用指定符号隔开。
//栈方法 后进先出
//push()方法:接受任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后的数组长度。
//pop()方法:从数组末尾移除最后一个元素,减少数组的length的值,然后返回移除的元素。
var box = ['小明',22,'学生'];
alert(box.push('杭州')); //返回的是数组长度
alert(box.pop()); //移除数组最后一个元素,并返回该元素的值。
alert(box.length); //元素移走,对应的数组长度也跟着变化。
//队列方法 先进先出 push()方法向数组末端加一个元素,shift()方法移除数组第一个元素。
unshift()向数组的前端添加元素,pop()方法移除数组末尾的元素。
//通过push()向数组末端加一个元素,然后通过shift()方法从数组前端移除一个元素。
var box = ['小明',22,'学生'];
alert(box.push('杭州')); //返回添加元素后的数组长度
alert(box); //显示添加元素的所有元素的值
alert(box.shift()); //移除数组的第一个元素。显示被移除的元素的值 小明
alert(box); //显示移除后剩下的数组的值
//unshift()方法和shift()方法的功能完全相反,在前端加一个元素
var box = ['小明',22,'学生'];
alert(box.unshift('杭州')); //在数组的第一个位置插入一个元素
alert(box);
注:IE浏览器unshift()方法总是返回undefined,而不是数组的新长度。
//重新排序
//数组中自带两个直接用了排序的方法:reverse()和sort();
var box = ['小明',22,'学生'];
alert(box.reverse()); //逆向排序,并显示数组
alert(box);
var box = ['小明',22,'学生'];
alert(box.sort());
var box = [1,3,5,2,4,7,0,11,13,24];
alert(box.sort()); //从小到大排序 ,并显示数组。然而不正确,要进行二次处理。
//给sort()函数传入参数
function compare(value1,value2){
if(value1 < value2){
return -1;
} else if(value1 > value2){
return 1;
}else{
return 0;
}
}
alert(box.sort(compare));
var box = ['小明',28,'杭州']; //当前数组
var box2 = box.concat('计算机编程'); //创建新数组,并添加新元素
alert(box2); //输出新数组
alert(box);//当前数组没有任何变
var box = ['小明',28,'杭州','学生']; //当前数组
var box2 = box.slice(1,3); //截取指定元素,下标从1开始。
alert(box2); //28,杭州
alert(box); //当前数组不影响。
//spliece 拥有的功能:删除,插入,替换。
var box = ['小明',28,'杭州','学生'];
var box2 = box.splice(1,2); //截取原数组,从下标1开始,共两个元素。 28,杭州
alert(box2);
var box = ['小明',28,'杭州'];
var box2 = box.splice(1,0,'班长');//在指定元素下标位置前面加一个元素,第二个得为“0”
alert(box2); // 空白
alert(box);//小明,班长,28,杭州
*/
var box = ['小明',28,'杭州'];
var box2 = box.splice(0,2,'张三','32');
alert(box2); //小明,28s
alert(box); //张三,32,杭州
* Array类型
*
Array类型是ECMAScript中最常用的类型.诸多其它语言中,数组都是有序的,数组元素类型也是固定的.但是ECMAScript的
数组元素可以为任何类型,数组的大小也是可变化的.
创建Array类型有两种方式:new运算符,字面量
1.使用new关键字创建数组
var box = new Array(); //创建了一个数组
var box = new Array(10); //创建了一个包含10个元素的数组
var box = new Arrar('小明',22,'学生','杭州'); //创建一个已经分配好元素的数组
2.省去new运算符创建数组
var box = new Array();
3.使用字面量创建数组
var box = []; //创建一个空的数组
var box = ['小明',22,'学生','杭州']; //创建包含元素的数组
var box = [1,2,]; //禁止这么做,这样IE在解析的时候会识别成有三个元素。
PS:和Object一样,字面量的写法不会调用Array()构造函数。(Firefox除外)
4.使用索引下标来读取数组的值
alert(box[2]); //获取第三个元素
box[2] = '管理员'; //修改第三个元素的值
box[4] = '计算机编程'; // 增加第五个元素
5.alert(box.length); //获取数组的长度
box.length = 10; //强制数组的长度等于10;
box[box.length] = '新增元素'; //新增元素
6.创建一个复杂的数组
var box = [
{
name : '小明';
age : 20;
run : function(){
return '函数运行了';
}
}, //第一个元素是一个对象
['小明','小花',‘小红’,new Object()], //第二个元素是数组
'浙江', //第三个元素是一个字符串
24+24, //第四个元素是数值
new array() //第五个元素是数组
];
alert();
转换方法
//对象中的方法
var box = ['小明',22,'学生']; //字面量数组
alert(box); //隐式调用了toString 小明,22,学生
alert(box.toString()); //小明,22,学生
alert(box.toLocaleString()); //小明,22,学生
alert(box.valueOf()); //小明,22,学生
var box = ['小明',22,'学生']; //字面量数组
alert(box.join('_')); //默认情况下数组字符串是以逗号隔开,使用join()方法,可以使用指定符号隔开。
//栈方法 后进先出
//push()方法:接受任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后的数组长度。
//pop()方法:从数组末尾移除最后一个元素,减少数组的length的值,然后返回移除的元素。
var box = ['小明',22,'学生'];
alert(box.push('杭州')); //返回的是数组长度
alert(box.pop()); //移除数组最后一个元素,并返回该元素的值。
alert(box.length); //元素移走,对应的数组长度也跟着变化。
//队列方法 先进先出 push()方法向数组末端加一个元素,shift()方法移除数组第一个元素。
unshift()向数组的前端添加元素,pop()方法移除数组末尾的元素。
//通过push()向数组末端加一个元素,然后通过shift()方法从数组前端移除一个元素。
var box = ['小明',22,'学生'];
alert(box.push('杭州')); //返回添加元素后的数组长度
alert(box); //显示添加元素的所有元素的值
alert(box.shift()); //移除数组的第一个元素。显示被移除的元素的值 小明
alert(box); //显示移除后剩下的数组的值
//unshift()方法和shift()方法的功能完全相反,在前端加一个元素
var box = ['小明',22,'学生'];
alert(box.unshift('杭州')); //在数组的第一个位置插入一个元素
alert(box);
注:IE浏览器unshift()方法总是返回undefined,而不是数组的新长度。
//重新排序
//数组中自带两个直接用了排序的方法:reverse()和sort();
var box = ['小明',22,'学生'];
alert(box.reverse()); //逆向排序,并显示数组
alert(box);
var box = ['小明',22,'学生'];
alert(box.sort());
var box = [1,3,5,2,4,7,0,11,13,24];
alert(box.sort()); //从小到大排序 ,并显示数组。然而不正确,要进行二次处理。
//给sort()函数传入参数
function compare(value1,value2){
if(value1 < value2){
return -1;
} else if(value1 > value2){
return 1;
}else{
return 0;
}
}
alert(box.sort(compare));
var box = ['小明',28,'杭州']; //当前数组
var box2 = box.concat('计算机编程'); //创建新数组,并添加新元素
alert(box2); //输出新数组
alert(box);//当前数组没有任何变
var box = ['小明',28,'杭州','学生']; //当前数组
var box2 = box.slice(1,3); //截取指定元素,下标从1开始。
alert(box2); //28,杭州
alert(box); //当前数组不影响。
//spliece 拥有的功能:删除,插入,替换。
var box = ['小明',28,'杭州','学生'];
var box2 = box.splice(1,2); //截取原数组,从下标1开始,共两个元素。 28,杭州
alert(box2);
var box = ['小明',28,'杭州'];
var box2 = box.splice(1,0,'班长');//在指定元素下标位置前面加一个元素,第二个得为“0”
alert(box2); // 空白
alert(box);//小明,班长,28,杭州
*/
var box = ['小明',28,'杭州'];
var box2 = box.splice(0,2,'张三','32');
alert(box2); //小明,28s
alert(box); //张三,32,杭州