JavaScript学习笔记——对象和数组(下)

/*
 * 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,杭州
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值