javascript中数组Array的方法

 (push,pop,unshift,shift,join,concat,map,some,filter,reduce,reduceright,)


1:push pop栈方法,后进先出
var a =[1,2,3];
console.log(a.push(40)); //4 返回数组的长度
console.log(a); //[1, 2, 3, 40] 
 
var b =[1,2,3];
console.log(b.pop()); //3 返回最后一项
console.log(b); // [1, 2]
------------------------------------------------------------------------------
2:unshift shift 对列方法,先进先出
var a =[1,2,3];
console.log(a.unshift(40));//4 返回数组长度
console.log(a); // [40, 1, 2, 3]
var b =[1,2,3];
console.log(b.shift()); //1 返回取出的第一项
console.log(b); //  [2, 3]
--------------------------------------------------------------------------3: concat方法用于创建一个新数组
如果想要复制一个数组,用什么方法,举例如下;
var arr =[1,2,3,4,5];
var newArr = arr;
console.log(newArr);//[1, 2, 3, 4, 5]
newArr.push(6);
console.log(newArr);//[1, 2, 3, 4, 5, 6]
console.log(arr); //[1, 2, 3, 4, 5, 6]
可见newArr并不是一个新数组,修改newArr会改变数组,因为数组不是基本数组类型,而是引用类型,所以用=赋值只不过是创建了一个新的引用,修改newArr时会修改堆内存的数据。
那么如何得到一个新的和原来一样的数组呢?
var newArr1 = arr.concat();
console.log(newArr1);//[1, 2, 3, 4, 5]
newArr1.push(6);
console.log(newArr1);//[1, 2, 3, 4, 5, 6]
console.log(arr); //[1, 2, 3, 4, 5]
可见修改新数组不会对原数组产生影响。
concat方法除了复制数组外,主要用于数组的连接,使用concat方法后会返回一个新的数组
var aNumber = [1,2,3];
var aNumber2 = [4,5];
console.log(aNumber.concat(aNumber2)); //[1, 2, 3, 4, 5]
console.log(aNumber); //[1,2,3]
当然concat方法还支持字符串与数组的连接
4:splice方法
splice方法可用于对原数组的插入、删除、修改,并不会创建一个新数组
var aN =[1,2,3,4,5];
aN.splice(1,2,'b'); //三个参数分别是起始位置,要删除的项数,需要添加的元素
console.log(aN);// [1, "b", 4, 5] 起始位置删除两项得到[1,4,5],然后将元素b插入起始位置
由于splice的强大功能可以实现删除,插入,修改功能
aN.splice(0,1);//删除第1项
aN.splice(1,1);//删除第2项
aN.splice(0,0,'a')//在第0项前插入'a'
aN.splice(2,0,'a')//在第2项前插入'a'
aN.splice(0,1,'b') //将第0项替换成'b'
aN.splice(2,1,'b') //将第2项替换成'b'
console.log(aNumber.concat(7,8)); // [1, 2, 3, 7, 8]
console.log(aNumber.concat(7,[11,12])); //[1, 2, 3, 7, 11, 12]

5:迭代方法(every,filter,forEach,map,some)
every:对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true.
var aN=[1,2,3,4,5]
var bFlag = aN.every(function(item){
    return item<6
})
console.log(bFlag);//true

var bFlag2 = aN.every(function(item){
    return item<4
})
console.log(bFlag);//false
------------------------------------------------------------------------------------------------------------------
some:对数组中的每一项运行给定函数,如果该函数对任一项都返回true,则返回true.
var aN=[1,2,3,4,5]
var bFlag = aN.some(function(item){
    return item==5
})
console.log(bFlag);//true
var aN=[1,2,3,4,5]
var bFlag = aN.some(function(item){
    return item==6
})
console.log(bFlag);//false
------------------------------------------------------------------------------------------------------------------
filter:对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
var aN=[1,2,3,4,5]
var aNewArr = aN.filter(function(item){
    return item>2
})
console.log(aNewArr);// [3, 4, 5]
------------------------------------------------------------------------------------------------------------------
forEach:对数组中的每一项运行给定函数,这个方法无返回值
var aN=[1,2,3,4,5]
aN.forEach(function(item){
    console.log(++item);
})
输出:
2
3
4
5
6
------------------------------------------------------------------------------------------------------------------
map:对数组中的每一项运行给定函数,返回数组调用的结果组成的数组
var aN = [1,2,3,4,5]
var aNewArr = aN.map(function(item){
    return ++item
})
console.log(aNewArr);//[2, 3, 4, 5, 6]

缩小方法(reduce,reduceRight)
reduce()方法从数组第一项开始,逐渐遍历到最后一项,reduceRight()方法从数组最后一项开始,逐渐遍历到第一项
var aN = [1,2,3,4,5]
var sum = aN.reduce(function(prev,cru,index,array){
  console.log(prev,cru);
  return prev+cru
})
console.log(sum);
输出
1 2
3 3
6 4
10 5
15
------------------------------------------------------------------------------------------------------------------
var aN = [1,2,3,4,5]
var sum = aN.reduceRight(function(prev,cru,index,array){
  console.log(prev,cru);
  return prev+cru
})
console.log(sum);
输出
5 4
9 3
12 2
14 1
15
------------------------------------------------------------------------------------------------------------------

Sort 

 arr.sort(function(a,b){return a>b?1:-1});//排序

 arr.sort(function(a,b){return b-a;});//排序

 arr.sort(function(a,b){return a<b?1:-1});//从大到小排序

 arr.sort(function(a,b){return a-b;});//排序


除了求和也可以进行其它运算,例如求数组中所有项的乘积
var aN = [1,2,3,4,5]
var sum = aN.reduce(function(prev,cru,index,array){  
  return prev*cru
})
console.log(sum);//120


hope it will help you know more about array of Javascript.
origin from : http://www.cnblogs.com/lj915/p/3890028.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值