indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。-1为不存在
var arr = [1, 2, 3];
var idx = arr.indexOf(2);
//idx为1
find() 方法返回数组中满足提供的测试函数的第一个元素的值。
注:find() 并没有改变数组的原始值。
- 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 undefined
var ages = [3, 10, 18, 20];
let s = ages.find(item=>{
return item > 18
})
console.log(s); // 20
var names = [
{ name:'hello'},{name:'us'},{name:'null'}
]
let a = names.find(item=>{
return item.name === 'hello'
})
console.log(a); //{name: "hello"}
let myArr=[1,2,3,4,8,12];
/*通过数组下标取对应值*/
var v2=myArr.find((value,index,arr)=>{
return index==4
});
console.log(v2); //8
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
注:find() 并没有改变数组的原始值。
- 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 -1
var names = [
{ name:'hello',name:'us',name:'null'}
]
let a = names.findIndex(item=>{
return item.name === 'hello'
})
console.log(a); // 0
var ages = [3, 10, 18, 20];
let a = ages.findIndex(item=>{
return item > 10
})
console.log(a); //2
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var ages = [3, 10, 18, 20];
let a = ages.findIndex(item=>{
return item > 10
})
console.log(a); //[18, 20]
//数组去重
var nums = [3,3,10,18,15,18,20]
var a = nums.filter((item,index,self)=>self.indexOf(item) === index
)
console.log(a); // [3, 10, 18, 15, 20]