Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
js数组遍历的十种方法有哪些_js遍历对象,希望能够帮助你!!!。
对数组中每个元素执行一次ok函数,知道某个元素返回true,则直接返回true。如果都返回false,则返回false
检查整个数组中是否有满足元素。
private some(id: number) {
const arr = [
{ cityId: 195, cityName: '深圳'},
{ cityId: 196, cityName: '北京'},
{ cityId: 198, cityName: '上海'}
]
let result = arr.some((item: any) => {
return item.cityId === id
})
console.log(`传入:${id},结果:${result}`)
}
private every() {
const arr = [1,2,3,4,5]
let result = arr.every((item: any) => {
return item > 0
})
console.log(`结果:${result}`)
}
private every() {
const arr = [1,2,3,4,5]
let result = arr.every((item: any) => {
return item > 10
})
console.log(`结果:${result}`)
}
第一个参数是数组里的当前元素,第二个参数为数组里当前元素的索引值,第三个参数则是它自己
没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。即map是返回一个新数组,原数组不变,forEach 是改变原数组。
不支持 continue,用 return false 或 return true 代替。
不支持 break,用 try catch/every/some 代替
数组自带的遍历方法,虽然使用频率略高,但是性能仍然比普通循环略低
private forEach() {
type itemType = {
cityId: number,
cityName: string
}
const arr = [
{ cityId: 195, cityName: '深圳'},
{ cityId: 196, cityName: '北京'},
{ cityId: 197, cityName: '上海'}
]
arr.forEach((item: itemType, index: number, arr: any) => {
console.log(`index:${index},item:${JSON.stringify(item)},arr:${JSON.stringify(arr)}`)
})
}
使用比较广泛,但其性能还不如 forEach
不会改变原始数组。
let arr = [1, 2, 3, 4, 5, 6]
let newArr = arr.map((item: any) => {
return item * item
})
console.log(newArr)
private filter(id: number): string {
const arr = [
{ cityId: 195, cityName: '深圳'},
{ cityId: 196, cityName: '北京'},
{ cityId: 197, cityName: '上海'}
]
let name: string = ''
arr.filter((item: any) => {
if(item.cityId === id) {
name = item.cityName
}
})
console.log(`传入:${id},结果:${name}`)
return name
}
let arr = [1,2,2,3,3,3,3,4,4,5,6]
let num = arr.find((item:any) => {
return item === 3
})
console.log(num)
let arr = [1,2,2,3,3,3,3,4,4,5,6]
let num = arr.find((item:any) => {
return item === 10
})
console.log(num)
let arr = [1,2,2,3,3,3,3,4,4,5,6]
let num = arr.findIndex((item:any) => {
return item === 2
})
console.log(num)
let arr = [1,2,2,3,3,3,3,4,4,5,6]
let num = arr.findIndex((item:any) => {
return item === 10
})
console.log(num)
for of不能对象用
const arr = [
{ cityId: 195, cityName: '深圳'},
{ cityId: 196, cityName: '北京'},
{ cityId: 197, cityName: '上海'}
]
for(const {cityId, cityName} of arr) {
console.log(cityId, cityName)
}
const arr = [
{ cityId: 195, cityName: '深圳'},
{ cityId: 196, cityName: '北京'},
{ cityId: 197, cityName: '上海'}
]
const obj = { cityId: 195, cityName: '深圳'}
for(const key in arr) {
console.log(`数组key-${key}`)
}
for(const key in obj) {
console.log(`对象key-${key}`)
}
const arr = [
{ cityId: 195, cityName: '深圳'},
{ cityId: 196, cityName: '北京'},
{ cityId: 197, cityName: '上海'}
]
for(let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
四种遍历方法对于100万的循环时间
for最快,但可读性比较差
forEach比较快,能够控制内容
for....of比较慢,香
for...in比较慢,不方便
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章