博客
关于我
js数组遍历十种方法
阅读量:232 次
发布时间:2019-03-01

本文共 3036 字,大约阅读时间需要 10 分钟。

JavaScript 数组方法实用解析

1. some()

some() 方法用于检查数组中是否存在至少一个满足条件的元素。如果找到符合条件的元素,立即返回 true,否则返回 false

private some(id: number) {    const arr = [        { cityId: 195, cityName: '深圳' },        { cityId: 196, cityName: '北京' },        { cityId: 198, cityName: '上海' }    ];    const result = arr.some((item: any) => item.cityId === id);    console.log(`传入:${id}, 结果:${result}`);}

2. every()

every() 方法用于检查数组中的每一个元素是否都满足给定的条件。如果所有元素都满足条件,则返回 true,否则返回 false

private every() {    const arr = [1, 2, 3, 4, 5];    const result = arr.every((item: any) => item > 0);    console.log(`结果:${result}`);}

3. forEach()

forEach() 方法用于对数组中的每个元素执行回调函数。该方法不会改变原数组,并且不支持 continuebreak,建议使用 returnthrow 来控制循环。

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)}`);    });}

4. map()

map() 方法用于创建一个新数组,新数组中的每个元素是原数组对应元素调用函数处理后的结果。该方法不会改变原数组。

let arr = [1, 2, 3, 4, 5, 6];let newArr = arr.map((item: any) => item * item);console.log(newArr);

5. filter()

filter() 方法用于创建一个新数组,包含原数组中符合条件的所有元素。该方法不会改变原数组。

private filter(id: number): string {    const arr = [        { cityId: 195, cityName: '深圳' },        { cityId: 196, cityName: '北京' },        { cityId: 197, cityName: '上海' }    ];    let name: string = '';    const result = arr.filter((item: any) => {        if (item.cityId === id) {            name = item.cityName;        }    });    console.log(`传入:${id},结果:${name}`);    return name;}

6. find()

find() 方法用于遍历数组,返回符合条件的第一个元素。如果没有找到符合条件的元素,则返回 undefined

let arr = [1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6];let num = arr.find((item: any) => item === 3);console.log(num);

7. findIndex()

findIndex() 方法与 find() 类似,但返回的是符合条件的第一个元素的索引。如果没有找到符合条件的元素,则返回 -1

let arr = [1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6];let num = arr.findIndex((item: any) => item === 2);console.log(num);

8. for...of (ES6)

for...of 方法用于遍历数组,自动解构当前元素和索引,适合处理数组的迭代操作。

const arr = [    { cityId: 195, cityName: '深圳' },    { cityId: 196, cityName: '北京' },    { cityId: 197, cityName: '上海' }];for (const { cityId, cityName } of arr) {    console.log(cityId, cityName);}

9. for...in

for...in 方法用于遍历数组或对象的属性。对于数组,for...in 会遍历元素的索引字符串。

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}`);}

10. for 循环

for 循环是最基础的循环语句,适合对数组进行索引遍历。虽然可读性较低,但性能优异。

const arr = [    { cityId: 195, cityName: '深圳' },    { cityId: 196, cityName: '北京' },    { cityId: 197, cityName: '上海' }];for (let i = 0; i < arr.length; i++) {    console.log(arr[i]);}

性能对比

  • for:速度最快,但可读性较差。
  • forEach:性能较好,适合控制内容。
  • for...of:速度较慢,但支持自动解构。
  • for...in:适合处理对象属性,但数组性能较差。

通过合理选择这些方法,可以高效地完成数组操作,提升代码可读性和性能。

转载地址:http://zdgv.baihongyu.com/

你可能感兴趣的文章
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
node.js模块、包
查看>>
node.js的express框架用法(一)
查看>>
Node.js的交互式解释器(REPL)
查看>>
Node.js的循环与异步问题
查看>>
Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
查看>>
nodejs + socket.io 同时使用http 和 https
查看>>
NodeJS @kubernetes/client-node连接到kubernetes集群的方法
查看>>
NodeJS API简介
查看>>
Nodejs express 获取url参数,post参数的三种方式
查看>>
nodejs http小爬虫
查看>>
nodejs libararies
查看>>
nodejs npm常用命令
查看>>
nodejs npm常用命令
查看>>