(1)ES6为Array增加了find(),findIndex函数。
find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。
findIndex()函数也是查找目标元素,找到就返回元素的位置(索引),找不到就返回-1。
他们的都是一个查找回调函数(匿名函数)。
find( )实例方法:
所谓的实例方法就是并不是以Array对象开始的,而是必须有一个已经存在的数组,然后使用的方法,这就是实例方法
let arr=[1,2,3,4,5,6,7,8,9];
console.log(arr.find(function(value,index,arr){
return value > 5;
}))
value:表示当前查找的值。
index:表示当前查找的数组索引。
arr:表示当前数组。
// 6
findIndex()方法
返回传入一个测试条件(函数)符合条件的数组第一个元素位置
获取数组中年龄大于等于 18 的第一个元素索引位置
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}
fruits 输出结果:
2
state.productList.forEach((ele, index) => {
const selectIndex = state.productList.findIndex(element => element.pageData === productCon.page)
if (selectIndex !== -1) {
// state.productList[selectIndex].selectData = []
state.productList[selectIndex].selectData = productCon.data
} else {
const selectData = {
pageData: productCon.page,
selectData: productCon.data
}
state.productList.push(selectData)
}
})
(2)filter()
1.判断数组中是否存在某个值
var arr = [
{ name:'xdd', age:50},
{ name: 'xm', age: 12 }
]
var newArr = arr.filter(item => item.name=='xdd' )
// newArr : [{name:'xdd', age:50}]
(2)去除 ‘’ ,undefined,null, 0
var arr = ['1',2,undefined, 'xdd',undefined,'0', 0, null, []]
var newArr = arr.filter(item => item)
// newArr : ['1','2','xdd', '0', []]
(3)去掉数组中不符合项
var arr = [1, 2, 3, 4, 5,4, 6]
var newArr = arr.filter(item => item>4)
// newArr : [5, 6]
(4)数组去重
var arr = [1, 2, 6, 3, 4, 5,4, 6,4,5,6,1,5,5,6,2]
var newArr = arr.filter((x, index, self)=>{
// x : 数组每一项的值
// index: 每一项的下标
// self: 当前数组
return self.indexOf(x)===index
})
// newArr: [1,2,6,3,4,5]