①find():返回通过测试的数组的第一个元素的值,如果没有符合条件的则返回undefined。
var arr = [1,2,3,4,5,6,7]
var ar = arr.find(function (elem) {
return elem > 5
})
console.log(ar) // 6
console.log(arr) // [1,2,3,4,5,6,7]
this.languageText = this.languageEnum.find(ele => ele.code === this.$route.params.languageCode).text
②map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,map()方法按照原始数组元素顺序依次处理元素。
var arr = [1,2,3,4,5,6,7]
var ar = arr.map(function (elem) {
return elem * 4
})
console.log(ar) // [4, 8, 12, 16, 20, 24, 28]
console.log(arr) // [1,2,3,4,5,6,7]
const _this = this
var arr = []
_this.placeholder.map(function (value) {
if (value.checked === true) {
arr.push(value.text)
}
})
③forEach():用于调用数组每个元素,并将元素传递给回调函数(注意没有办法跳出或终止forEach语句,除非抛出异常)。forEach()返回值为undefined,里面即便有return语句,返回值依然是undefined。
var arr = [1,2,3,4,5,6,7]
var sum = 0
var ar = arr.forEach(function (elem) {
sum+ = elem * 4
})
console.log(ar) // undefined
console.log(arr) // [1,2,3,4,5,6,7]
console.log(sum) // 112
this.globalHardFilterArr.forEach((item, index) => {
this.$refs[`childCardGH${index}`][0].select_state = this.states.find(e => e.value === item.operator).text
})
④filter():创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var arr = [1,2,3,4,5,6,7]
var ar = arr.filter(function (elem) {
return elem > 5
})
console.log(ar) // [6,7]
console.log(arr) // [1,2,3,4,5,6,7]
active () {
const found = this.item.children.filter(
item => item.to === this.$route.path
)
return found.length > 0
}
总结:
find()方法主要用来返回数组中符合条件的第一个元素(没有的话,返回undefined)
filter()方法主要用来筛选数组中符合条件的所有元素,并且放在一个新数组中,如果没有,返回一个空数组
map()方法主要用来对数组中的元素调用函数进行处理,并且把处理结果放在一个新数组中返回(如果没有返回值,新数组中的每一个元素都为undefined)
forEach()方法也是用于对数组中的每一个元素执行一次回调函数,但它没有返回值(或者说它的返回值为undefined,即便我们在回调函数中写了return语句,返回值依然为undefined)