IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> js中对数组的循环和过滤 -> 正文阅读

[JavaScript知识库]js中对数组的循环和过滤

一. 数组循环

常用的4种循环方式,for;for-in;??forEach;? ? for-of

const arr = ['a', 'b', 'c'];

// for 循环
for (let index=0; index < someArray.length; index++) {
 const elem = someArray[index];
 // ···
}

// for-in 循环
for (const key in someArray) {
 console.log(key);
}

// forEach 循环
someArray.forEach((elem, index) => {
 console.log(elem, index);
});

// for-of 循环
for (const elem of someArray) {
 console.log(elem);
}

?推荐使用:for-of

1、可以使用break,continue,return进行终止循环

2、for-of 不仅可以遍历数组,还可以遍历可迭代对象,例如遍历 Map:

const myMap = new Map()

?.set(false, 'no')

?.set(true, 'yes')

;

for (const [key, value] of myMap) {

?console.log(key, value);

}

3、同样可以与原生的for循环一样访问数组索引

? ? ?数组方法 .entries() 返回一个可迭代的 [index,value] 对。如果使用 for-of 并使用此方法进行解构,可以很方便地访问数组索引:

const arr = ['chocolate', 'vanilla', 'strawberry'];
 
for (const [index, elem] of arr.entries()) {
 console.log(index, elem);
}
// Output:
// 0, 'chocolate'
// 1, 'vanilla'
// 2, 'strawberry'

二. 数组过滤,filter

var arr = [{id:1, flag:true},{id:2,flag:false},{id:3, flag:true}]
// 筛选出所有的flag为false的对象
var newArr = arr.filter(obj => !obj.flag);

值得一提的是filter方法不会改变原数组,而是返回一个新的数组!!!.

三. 判断数组中是否存在某个值

1、通过filter,some

// filter通过过滤,返回一个新的数组
array.filter(e=>e==x).length > 0
// some通过条件遍历,返回一个布尔值
array.some(e=>e==x)

2、array.indexOf,返回下标(缺点是只能检查是普通类型的数据数组)

// 输出0
[1, 2, 3].indexOf(1);

// 输出1
["foo", "fly63", "baz"].indexOf("fly63");

// 输出-1
[1, 2, 3].indexOf(4);

3、array.includes,返回布尔值(缺点是只能检查是普通类型的数据数组)

[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false

它还接受可选的第二个参数fromIndex:

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:44:26  更:2022-04-28 11:47:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:27:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码