美文网首页
常用的数组操作方法

常用的数组操作方法

作者: MISS_3ca2 | 来源:发表于2020-08-16 10:04 被阅读0次

map()

map()方法返回一个新数组,不会改变原数组
        var arr = [1,2,3,4,5,6,7,8,1,2,3,4]
        function pow(x){
            return x*x
        }
        arr.map(function(val,i){
            console.log(i) //0 1 2 3 4 5 6 7
            console.log(val) // 1 2 3 4 5 6 7 8
        })
        console.log(arr.map(pow)) // [1, 4, 9, 16, 25, 36, 49, 64]
        console.log(arr.map(String)) //["1", "2", "3", "4", "5", "6", "7", "8"]

filter()

filter()方法过滤掉某些元素,返回剩下的元素 不会改变原有数组
var a2 = arr.filter(function(x){
    return x % 2 == 0
})
console.log(a2) //[2, 4, 6, 8, 2, 4]
console.log(arr) //[1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4]
filrer()方法去重,主要依靠indexOf总是返回第一个元素的位置,后续的重复元素位置和indexOf返回的位置不相等,因此被过滤掉了
var a3 = arr.filter(function(val,index,self){
      return self.indexOf(val) === index
})
console.log(a3) //[1, 2, 3, 4, 5, 6, 7, 8]

reduce()方法,接收一个函数作为累加器

var aa = arr.reduce(function(x,y){
      return x+y
})
console.log(aa) //46

sort()方法排序

console.log(arr.sort()) //[1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8]

every()方法可以判断数组的所有元素是否满足测试条件

let a4 = arr.every(function(val){
    return val%2==0
})
console.log(a4)  //false

some()方法判断数组中是否有某一项满足条件

const fruits = [
      { name: 'apple', color: 'red' },
      { name: 'banana', color: 'yellow' },
      { name: 'grape', color: 'purple' }
 ];

// 条件:是否有红色水果 
const isAnyRed = fruits.some(f => f.color == 'red'); //true

find()方法用于查找符合条件的第一个元素,如果找到了返回这个元素 否则返回undefined

let a5 = arr.find(function(val){
    return val%3 ==0
})
console.log(a5) //3

findIndex()方法和find()类似,不同之处是返回这个元素的索引,如果没找到返回-1

let arr2 = [2,3,4,5,6]
let a6 = arr2.findIndex(function(val,index){
   return val%3==0
})
console.log(a6) //1

foreach() 把每个元素依次作用于传入的函数,但不会返回新的数组,常用于遍历数组

arr2.forEach(function(val){
   console.log(val) // 2 3 4 5 6
})

new set() set对象存储的值总是唯一的 去重

console.log([...new Set(arr)]); //[1, 2, 3, 4, 5, 6, 7, 8]

//并集
var arr3 = [1,2,3],
// var arr3 = new Set([1,2,3]);
arr4 = [2,3,4];
// var arr4 = new Set([2,3,4]);
console.log(new Set([...arr3,...arr4])); // {1, 2, 3, 4}

concat()或者展开运算符合并数组

console.log(arr3.concat(arr4)); //[1, 2, 3, 2, 3, 4]
console.log([...arr3,...arr4])//[1, 2, 3, 2, 3, 4]

相关文章

网友评论

      本文标题:常用的数组操作方法

      本文链接:https://www.haomeiwen.com/subject/yuowdktx.html