ECMAScript的数组

数组本身是对象,js中的数组长度是可随便改变的,元素的类型是任意混合的。
创建数组的两种方式:
var arr = new Array();
var arr = [1,2,3,4,true,’abcd’,new Date()]; 提倡用该方式
alert(arr.length); //数组的长度是7
arr.length=5; //改变其长度为5
alert(arr); //alert()方法参数为字符串,这里arr是对象会隐式调用 arr.toString()方法
//alert(arr.toString());


数组中的常用方法:
1、push()向数组尾部添加元素,返回新数组的长度
示例: var arr = [1,2,3,true];
var rePush = arr.push(1,2,true);
alert(arr); //1,2,3,true,1,2,true
alert(rePush); //7

2、pop()从数组的尾部删除一个元素,返回值为删除的元素
示例: var arr = [1,2,3,true];
var rePop = arr.pop();
alert(arr); //1,2,3
alert(rePop ); //true

3、shift()从数组的头部删除一个元素,返回值为删除的元素
示例: var arr = [1,2,3,true];
var reShift = arr.shift();
alert(arr); //2,3,true
alert(reShift ); //1

4、unshift()从数组的头部插入多个元素,返回值为新数组的长度
示例: var arr = [1,2,3,true];
var reUnshift = arr.unshift(2,4);
alert(arr); //2,4,1,2,3,true
alert(reUnshift ); //6

5、splice()追加元素:第一个参数 起始位置 ;第二个参数 表示截取的个数;第三个参数开始 表示追加的新元素; 返回截取的元素
示例: var arr1 = [1,2,3,4,5];
var reSplice = arr1.splice(1,2,3,4,5);
alert(arr1); //1,3,4,5,4,5
alert(reSplice); //2,3

6、slice()截取元素 左闭右开区间 不操作数据本身,返回值为截取的元素
示例: var arr1 = [1,2,3,4,5];
var reSlice = arr1.slice(2,4);
alert(arr1); //1,2,3,4,5
alert(reSlice); //3,4

7、concat() 不操作数组本身,将两个数组拼合、粘连,返回两个数组粘连的结果
示例: var arr1 = [1,2,3];
var arr2 = [true,4,5];
var reConcat = arr2.concat(arr1);
alert(reConcat); //true,4,5,1,2,3

8、join() 不操作数组本身,将数组元素用指定符号连接,返回连接后的字符串
示例: var arr1 = [1,2,3];
var reJoin = arr1.join(“-“);
alert(reJoin); //1-2-3

9、sort()正序排序 操作数组本身,返回排序后的数组(元素的字符比较非值比较)
示例: var arr2 = [10,2,4,1,7];
var reSort2 = arr2.sort();
alert(arr2); //1,10,2,4,7
alert(reSort2); //1,10,2,4,7
//自定义值排序

```
function compare(value1,value2){
    if(value1 < value2){
        return -1;
    }else if(value1>value2){
        return 1;
    }else{
        return 0;
    }
}
arr2.sort(compare);
alert(arr2);          //1,2,4,7,10
```

10、 reverse()倒序排序 操数组本身,按照元素的index进行倒序
示例: var arr1 = [5,2,1,4,3];
var rerev = arr1.reverse();
alert(arr1); //3,4,1,2,5
alert(rerev); //3,4,1,2,5

*************************ECMA5新特性*********************************
11、index() / indexOf() 在数组中获取指定值的索引(索引index从0开始),不存在返回-1
示例:var arr = [1,2,3,4,5,4,3,2,1];
var index = arr.indexOf(4); //3
2个参数时:第一个参数表示传值、第二个参数表示查找index起始位置
var index = arr.indexOf(3,4); //6
lastIndexOf()从后向前找

12、every() 对于数组每一个元素进行函数运算,如果都返回true,最后为true;有一个为false,最终结果为false
示例: var arr = [1,2,3,4,5,4,3,2,1];
var result = arr.every(function(item,index,array){
return item>0;
});
alert(result); //true

13、filter()对于数组每一个元素进行函数运算,把过滤后的结果返回
示例: var arr = [1,2,3,4,5,4,3,2,1];
var result = arr.filter(function(item,index,array){
return item>2;
});
alert(result); //3,4,5,4,3

14、forEach()循环数组的每一项的值,并执行一个方法
示例: var arr = [1,2,3,4,5,4,3,2,1];
arr.forEach(function(item,index,array){
alert(item); // 1 2 3 4 5 4 3 2 1
});

15、map()对于数组每一个元素进行函数运算,可通过函数的执行,把新的结果返回
示例: var arr = [1,2,3,4,5,4,3,2,1];
var re = arr.map(function(item,index,array){
return item*2;
});
alert(re); //2,4,6,8,10,8,6,4,2

16、some() 对于数组每一个元素进行函数运算,如果都返回false,最后为false;有一个为true,最终结果为true
示例: var arr = [1,2,3,4,5,4,3,2,1];
var re= arr.some(function(item,index,array){
return item>10;
});
alert(re); //false

17、reduce()、reduceRight()
参数说明:prev前一个值、当前值、索引位置、array
示例: var arr = [1,2,3,4,5,4,3,2,1];
var result = arr.reduce(function(prev,cur,index,array){
return prev+cur;
});
alert(result); //25
//从右向左计算
var result = arr.reduceRight(function(prev,cur,index,array){
return prev+cur;
});
alert(result);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值