js Array中filter、map、find的区别

2,715 阅读1分钟

MDN解释:

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。

区别

var kvArray = [{ key: 1, value: 10 },{ key: 3, value: 20 },{ key: 2, value: 30 }];

var mapResult = kvArray.map((v,i)=>{
    return v.value = v.value + 's'
})
console.log(mapResult)// ['10s', '20s', '30s' ]


var filterResult = kvArray.filter((v,i)=>{
    return v.value = v.value + 's'
})
console.log(filterResult) //[ { key: 1, value: '10s' },{ key: 3, value: '20s' },{ key: 2, value: '30s' } ]


var findResult = kvArray.find((v,i)=>{
    return v.value ==20
})
console.log(findResult) //{ key: 3, value: '20s' }
const arr = [1,2,4,5,6,8];

const mapResult = arr.map(item=>item>5);
console.log(mapResult)//[false,false,false,false,true,true]

const filterResult = arr.filter(item=>item>5);
console.log(filterResult)//[6,8]

const found = arr.find(item => item > 5);
console.log(found);//6