数组的常用方法

2020-08-05  本文已影响0人  凉城十月

数组是用Array创建出来的并且__proto__指向Array.prototype的一种对象。

1.forEach

使用方法:
arr.forEach(function(value, key){})
实现:当直接传一个数组时。

function forEach(array ,x ){
  for(let i =0 ;i<arrray.length ; i++){
    x(array[i], i)
  }    
}

当用this传数组时。

arr.forEach = function(x){
  for(let i = 0;i < arr.length; i++){
    x(this[i], i)
  }
}

this=arr,默认this会传到方法中,不用写出来。

2.sort

在原数组上进行排序,采用原地排序,更节省空间,内置的排序一般快排

var a = [2,3,1,5,4]
a.sort(function(x,y){
  return x- y  //如果排序的顺序不对,就返回y-x
})

x表示左边那个数,y表示右边那个数。只有三种返回值: 正数,0,负数

3.join

默认用英文逗号分隔

var a = [1,2,3]
a.join('aa')  //"1aa2aa3"

4.concat

合并多个数组,返回一个新的数组。 一般用来复制一个数组

var a =[1,2,3]
var b = a.concat([]) //返回一个新的数组
a === b //false

5.map

和forEach的效果一样,只不过有返回值。

a.map(function(value ,key ){
return value * 2
})

使用箭头函数表示:
a.map(value => value*2)
返回一个新的数组,a还是不变。

6.filter

返回一个新的数组,原数组不变。
filter和map一起用=>链式操作

a.filter(function(value ,key){
  return value % 2 ===0 //只剩偶数
}).map(function(value ,key){
 return value *value //取剩下的偶数的平方
})

7.reduce

reduce表示遍历数组,reduce是最强大的方法。
a= [1,2,3,4,5,6]
求和:

a.reduce(function(sum, n ){ //两个变量,n表示操作值,这个值一直在变,sum表示要输出的数据
   return sum + n
}, 0)  //方法后的值是sum的初始值
a.reduce(function(arr, n ){
  arr.push( n * 2)
  return arr
}, [])
a.reduce(function(arr, n ){
  if(n % 2 === 0){
    arr.push(n)
  }
  return arr
}, [])
上一篇下一篇

猜你喜欢

热点阅读