JS常用的循环遍历你会几种

PCL DBSCAN密度聚类【2026最新版】 点云密度聚类的PCL代码实现,与matlab自带的密度聚类算法进行对比验证,结果一致。3万多个点能再2秒左右运行出结果,算法效率尚可。 阅读详情

前言

数组和对象作为一个最基础数据结构,在各种编程语言中都充当着至关重要的角色,你很难想象没有数组和对象的编程语言会是什么模样,特别是 JS ,弱类型语言,非常灵活。本文带你了解常用数组遍历、对象遍历的使用对比以及注意事项。

数组遍历

随着 JS 的不断发展,截至 ES7 规范已经有十多种遍历方法。下面按照功能类似的方法为一组,来介绍数组的常用遍历方法。

for、forEach、for ...of

const list = [1, 2, 3, 4, 5, 6, 7, 8,, 10, 11];

for (let i = 0, len = list.length; i < len; i++) {
  if (list[i] === 5) {
    break; // 1 2 3 4
    // continue; // 1 2 3 4 6 7 8 undefined 10 11
  }
  console.log(list[i]);
}

for (const item of list) {
  if (item === 5) {
    break; // 1 2 3 4
    // continue; // 1 2 3 4 6 7 8 undefined 10 11
  }
  console.log(item);
}

list.forEach((item, index, arr) => {
  if (item === 5) return;
  console.log(index); // 0 1 2 3 5 6 7 9 10
  console.log(item); // 1 2 3 4 6 7 8 9 10
});
复制代码

小结

  • 三者都是基本的由左到右遍历数组
  • forEach 无法跳出循环;for 和 for ..of 可以使用 break 或者 continue 跳过或中断。
  • for ...of 直接访问的是实际元素。for 遍历数组索引,forEach 回调函数参数更丰富,元素、索引、原数组都可以获取。
  • for ...of 与 for 如果数组中存在空元素,同样会执行。

some、every

const list = [
  { name: '头部导航', backward: false },
  { name: '轮播', backward: true },
  { name: '页脚', backward: false },
];
const someBackward = list.some(item => item.backward);
// someBackward: true
const everyNewest = list.every(item => !item.backward);
// everyNewest: false
复制代码

小结

  • 二者都是用来做数组条件判断的,都是返回一个布尔值
  • 二者都可以被中断
  • some 若某一元素满足条件,返回 true,循环中断;所有元素不满足条件,返回 false。
  • every 与 some 相反,若有益元素不满足条件,返回 false,循环中断;所有元素满足条件,返回 true。

filter、map

const list = [
{ name: '头部导航', type: 'nav', id: 1 },,
{ name: '轮播', type: 'content', id: 2 },
{ name: '页脚', type: 'nav', id: 3 },
];
const resultList = list.filter(item => {
  console.log(item);
  return item.type === 'nav';
});
// resultList: [
//   { name: '头部导航', type: 'nav', id: 1 },
//   { name: '页脚', type: 'nav', id: 3 },
// ]

const newList = list.map(item => {
  console.log(item);
  return item.id;
});
// newList: [1, empty, 2, 3]

// list: [
//   { name: '头部导航', type: 'nav', id: 1 },
//   empty,
//   { name: '轮播', type: 'content', id: 2 },
//   { name: '页脚', type: 'nav', id: 3 },
// ]
复制代码

小结

  • 二者都是生成一个新数组,都不会改变原数组(不包括遍历对象数组是,在回调函数中操作元素对象)
  • 二者都会跳过空元素。有兴趣的同学可以自己打印一下
  • map 会将回调函数的返回值组成一个新数组,数组长度与原数组一致。
  • filter 会将符合回调函数条件的元素组成一个新数组,数组长度与原数组不同。
  • map 生成的新数组元素是可自定义。
  • filter 生成的新数组元素不可自定义,与对应原数组元素一致。

find、findIndex

const list = [
{ name: '头部导航', id: 1 },
{ name: '轮播', id: 2 },
{ name: '页脚', id: 3 },
];
const result = list.find((item) => item.id === 3);
// result: { name: '页脚', id: 3 }
result.name = '底部导航';
// list: [
//   { name: '头部导航', id: 1 },
//   { name: '轮播', id: 2 },
//   { name: '底部导航', id: 3 },
// ]

const index = list.findIndex((item) => item.id === 3);
// index: 2
list[index].name // '底部导航';
复制代码

小结

  • 二者都是用来查找数组元素。
  • find 方法返回数组中满足 callback 函数的第一个元素的值。如果不存在返回 undefined。
  • findIndex 它返回数组中找到的元素的索引,而不是其值,如果不存在返回 -1。

reduce、reduceRight

reduce 方法接收两个参数,第一个参数是回调函数(callback) ,第二个参数是初始值(initialValue)。

reduceRight 方法除了与reduce执行方向相反外(从右往左),其他完全与其一致。

回调函数接收四个参数:

  • accumulator:MDN 上解释为累计器,但我觉得不恰当,按我的理解它应该是截至当前元素,之前所有的数组元素被回调函数处理累计的结果。
  • current:当前被执行的数组元素。
  • currentIndex: 当前被执行的数组元素索引。
  • sourceArray:原数组,也就是调用 reduce 方法的数组。

如果不传入初始值,reduce 方法会从索引 1 开始执行回调函数,如果传入初始值,将从索引 0 开始、并从初始值的基础上累计执行回调。

计算对象数组某一属性的总和

const list  = [
  { name: 'left', width: 20 },
  { name: 'center', width: 70 },
  { name: 'right', width: 10 },
];
const total = list.reduce((currentTotal, item) => {
  return currentTotal + item.width;
}, 0);
// total: 100
复制代码

对象数组的去重,并统计每一项重复次数

const list  = [
  { name: 'left', width: 20 },
  { name: 'right', width: 10 },
  { name: 'center', width: 70 },
  { name: 'right', width: 10 },
  { name: 'left', width: 20 },
  { name: 'right', width: 10 },
];
const repeatTime = {};
const result = list.reduce((array, item) => {
  if (repeatTime[item.name]) {
    repeatTime[item.name]++;
    return array;
  }
  repeatTime[item.name] = 1;
  return [...array, item];
}, []);
// repeatTime: { left: 2, right: 3, center: 1 }
// result: [
//   { name: 'left', width: 20 },
//   { name: 'right', width: 10 },
//   { name: 'center', width: 70 },
// ]
复制代码

对象数组最大/最小值获取

const list  = [
  { name: 'left', width: 20 },
  { name: 'right', width: 30 },
  { name: 'center', width: 70 },
  { name: 'top', width: 40 },
  { name: 'bottom', width: 20 },
];
const max = list.reduce((curItem, item) => {
  return curItem.width >= item.width ? curItem : item;
});
const min = list.reduce((curItem, item) => {
  return curItem.width <= item.width ? curItem : item;
});
// max: { name: "center", width: 70 }
// min: { name: "left", width: 20 }
复制代码

reduce 很强大,更多奇技淫巧推荐查看这篇《25个你不得不知道的数组reduce高级用法》

性能对比

说了这么多,那这些遍历方法, 在性能上有什么差异呢?我们在 Chrome 浏览器中尝试。我采用每个循环执行10次,去除最大、最小值 取平均数,降低误差。

var list = Array(100000).fill(1)

console.time('for');
for (let index = 0, len = list.length; index < len; index++) {
}
console.timeEnd('for');
// for: 2.427642822265625 ms

console.time('every');
list.every(() => { return true })
console.timeEnd('every')
// some: 2.751708984375 ms

console.time('some');
list.some(() => { return false })
console.timeEnd('some')
// some: 2.786590576171875 ms

console.time('foreach');
list.forEach(() => {})
console.timeEnd('foreach');
// foreach: 3.126708984375 ms

console.time('map');
list.map(() => {})
console.timeEnd('map');
// map: 3.743743896484375 ms

console.time('forof');
for (let index of list) {
}
console.timeEnd('forof')
// forof: 6.33380126953125 ms
复制代码

从打印结果可以看出,for 循环的速度最快,for of 循环最慢

常用遍历的终止、性能表格对比

 是否可终止   
****breakcontinuereturn性能(ms)
for终止 ✅跳出本次循环 ✅❌2.42
forEach❌❌❌3.12
map❌❌❌3.74
for of终止 ✅跳出本次循环 ✅❌6.33
some❌❌return true ✅2.78
every❌❌return false ✅2.75

最后,不同浏览器内核 也会有些差异,有兴趣的同学也可以尝试一下。

对象遍历

在对象遍历中,经常需要遍历对象的键、值,ES5 提供了 for...in 用来遍历对象,然而其涉及对象属性的“可枚举属性”、原型链属性等,下面将从 Object 对象本质探寻各种遍历对象的方法,并区分常用方法的一些特点。

for in

Object.prototype.fun = () => {};
const obj = { 2: 'a', 1: 'b' };for (const i in obj) 
{  console.log(i, ':', obj[i]);
}
// 1: b// 2: a// fun :
 () => {} Object 原型链上扩展的方法也被遍历出来for (const i in obj) 
{  if (Object.prototype.hasOwnProperty.call(obj, i)) {     
 console.log(i, ':', obj[i]);    }
}// name : a 不属于自身的属性将被 hasOwnProperty 过滤

小结

使用 for in 循环时,返回的是所有能够通过对象访问的、可枚举的属性,既包括存在于实例中的属性,也包括存在于原型中的实例。如果只需要获取对象的实例属性,可以使用 hasOwnProperty 进行过滤。

使用时,要使用(const x in a)而不是(x in a)后者将会创建一个全局变量。

for in 的循环顺序,参考【JavaScript 权威指南】(第七版)6.6.1。

  • 先列出名字为非负整数的字符串属性,按照数值顺序从最小到最大。这条规则意味着数组和类数组对象的属性会按照顺序被枚举。
  • 在列出类数组索引的所有属性之后,在列出所有剩下的字符串名字(包括看起来像整负数或浮点数的名字)的属性。这些属性按照它们添加到对象的先后顺序列出。对于在对象字面量中定义的属性,按照他们在字面量中出现的顺序列出。
  • 最后,名字为符号对象的属性按照它们添加到对象的先后顺序列出。

Object.keys

Object.prototype.fun = () => {};const str = 'ab';console.log(Object.keys(str));// ['0', '1']const arr = ['a', 'b'];console.log(Object.keys(arr));// ['0', '1']const obj = { 1: 'b', 0: 'a' };console.log(Object.keys(obj));// ['0', '1']
复制代码

小结

用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回一个由属性名组成的数组。

Object.values

Object.prototype.fun = () => {};const str = 'ab';console.log(Object.values(str));// ['a', 'b']const arr = ['a', 'b'];console.log(Object.values(arr));// ['a', 'b']const obj = { 1: 'b', 0: 'a' };console.log(Object.values(obj));// ['a', 'b']
复制代码

小结

用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回一个由属性值组成的数组。

Object.entries

const str = 'ab';
for (const [key, value] of Object.entries(str))
 {    console.log(`${key}: ${value}`);
} // 0: a// 1: bconst arr = ['a', 'b'];for (const [key, value] of Object.entries(arr)) 
{    console.log(`${key}: ${value}`);
}// 0: a// 1: bconst obj = { 1: 'b', 0: 'a' };
for (const [key, value] of Object.entries(obj)) {   
 console.log(`${key}: ${value}`);
}// 0: a// 1: b

小结

用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回二维数组。每一个子数组由对象的属性名、属性值组成。可以同时拿到属性名与属性值的方法。

Object.getOwnPropertyNames

Object.prototype.fun = () => {};
Array.prototype.fun = () => {};
const str = 'ab';console.log(Object.getOwnPropertyNames(str));// ['0', '1', 'length']const arr = ['a', 'b'];console.log(Object.getOwnPropertyNames(arr));// ['0', '1', 'length']const obj = { 1: 'b', 0: 'a' };console.log(Object.getOwnPropertyNames(obj));// ['0', '1']

小结

用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回一个由属性名组成的数组。

总结

我们对比了多种常用遍历的方法的差异,在了解了这些之后,我们在使用的时候需要好好思考一下,就能知道那个方法是最合适的。欢迎大家纠正补充。
 

【电子通识】TINA-TI怎么使用受控源向导创建受控源 TINA-TI怎么使用受控源向导创建受控源 阅读详情

相关推荐

Python自动化批量识别化学分子结构——从图片到SMILES/SDF的实战指南

本文提供了使用Python自动化批量识别化学分子结构图片的实战指南。详细对比了基于Molvec API的在线快速方案与本地部署OSRA工具的两种路径,包含完整的代码示例、环境配置及优化技巧,帮助化学研究者高效地将图片批量转换为SMILES或SDF格式,显著提升数据处理效率。

apple5的专栏 940

JS常用的循环遍历

数组遍历 for、forEach、for …of const list = [1, 2, 3, 4, 5, 6, 7, 8,, 10, 11]; for (let i = 0, len = list.length; i < len; i++) { if (list[i] === 5) { break; // 1 2 3 4 // continue; // 1 2 3 4 6 7 8 undefined 10 11 } console.log(list[i]); } fo

lpq1201的博客 2207

芯片低功耗设计的两种常用EDA流程

如题。

EricWZY2008的专栏 5555

js遍历list

改进:这里可以将list2.length提出来,不用每次计算长度,效率更高一些,such as:var len=list2.length;小结:对于List来说,能不用for…4.$.each()遍历List/map//遍历List。5.$.map()遍历List/map//遍历List。小结:很常见也很常用,效率也不差,但不能遍历map。遍历List/map//遍历map。.each()类似,但对list的遍历时,参数顺序和。1.最常用的for循环for(var i=0;小结:和for循环效率差不多。

cuisidong1997的博客 4236

hi3519dv500 os04a10输入调试

因该sensor接在soc端的iic6,在驱动中(Hi3519DV500_SDK_V2.0.1.1\smp\a55_linux\source\mpp\cbb\isp\user\sensor\hi3519dv500\omnivision_os04a10\os04a10_sensor_ctl.c)注意总线的选择。mem_process_isolation=1 改为 mem_process_isolation=0。2、OT_MIPI_SET_HS_MODE配置为LANE_DIVIDE_MODE_1。

linus 3162

高等数学/概率论/数理统计/线性代数/离散数学面试-核心概念-问题理解

特征值与特征向量是线性代数中的概念,它们与线性变换有关。在线性变换中,如果存在非零向量 v ,使得当该向量通过变换后,其方向不变,只是长度发生了变化,那么这个向量 v 就是特征向量。而这个长度变化的比例因子,即变换前后向量长度的比值,称为特征值。数学公式表示:通俗易懂的解释:想象一下,你有一个可以伸缩的橡皮筋,这个橡皮筋可以代表一个向量。现在,你有一个特殊的机器,它可以改变橡皮筋的形状,但不会改变它延伸的方向。当你把橡皮筋放入机器中,机器会拉伸或压缩橡皮筋,但橡皮筋的方向保持不变。

m0_64198455的博客 2292

JavaScript for循环的使用

JavaScript 之 for循环 在Javascript中,for循环是一个非常重要内容,在网页制作中占据了很大的比重,很多重复繁琐的工作都不用我们自己来写了,有了for循环,一切都显得那么简单。今天先来简单看看for循环的使用方法。 1.for循环的基本代码格式: 直接上代码,更直接 <script> for (初始值;条件判断;递增/递减){ 代码块} </script> //下面是举例的格式 <script> var

前端、python爱好者 1598

LK32T102 单片机 操作GPIO实现流水灯(1)

前言: LK32T10232(32位)单片机是一款专为电机控制器和数字电源开发的高性能 MCU。采Cortex-M0 内核,最高工作频率可达 72Mhz,ADC 采样速率 达 1Msps。同时具备协处理器单元可满足各种乘法、除法、移位以及各种 复杂函数运算。 LK32T102(32位)支持单电源供电,且内嵌高精度高速及低速振荡器,以及具备 多种低功耗工作模式。同时,集成了多路增强型 PWM,多通道模拟比较 器和高速运算放大器,可满足多种电机及功率控制应用,并简化系统成本。...

qq_58676187的博客 3189

js中for循环创造一个list和Map数据结构

this.mapResiz = function () { this.list1 = [] for(i = 0; i <= 100000; i++){ var neirong = {} neirong['code'] = i; neirong['actName'] = 'name'+i+'dada'; .

adoreen的博客 1037

微带线贴片天线尺寸的计算,利用Matlab计算+常见的RF计算在线公式

微带线贴片天线尺寸的计算,利用Malatb计算 这几天在使用hfss对矩形天线仿真,每次改变频率和实验的材料,都要重新计算一遍,太麻烦了,所以用matlab进行计算。 知道天线的工作频率:f_r 介质板的介电常数:epsilon_r 介质板厚度:h 就可以计算出矩形天线的长:L 矩形天线的宽:W 对于下面公式的单位要注意,公式以及化简了,要注意单位 由于matlab中的变量不能用希腊字母代替,所以用了该字母的读音 代码如下: f_r=2.45; %工作频率,单位GHz epsilon_r=3.5;

weixin_43404609的博客 2万+

SDA 还是 SDI:SAP HANA 数据虚拟化与数据集成的取舍、组合与实战

结论先放在前面:SDA 面向数据虚拟化与联邦查询,强调不落地、不复制、按需实时访问;SDI 面向数据集成与复制,强调抽取、转换、装载与近实时增量同步。两者共享 Remote Source 与 Adapter 的理念,但侧重点与运行时组件明显不同。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 583

javascript的list循环

JavaScript list使用 <!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <title>list&lt...

weixin_34183910的博客 797

【第1章】基于FPGA的图像形态学处理学习教程——目录

本课程介绍图像形态学处理技术,通过腐蚀、膨胀、开运算、闭运算等算子对图像进行优化。腐蚀可去除边缘杂色使线条更清晰,膨胀能填补缺口修复图像,开运算擅长去噪,闭运算则用于修补断裂。课程内容涵盖四大形态学处理的理论分析、MATLAB仿真和FPGA开发实现,包括腐蚀、膨胀、开闭运算以及顶帽变换等操作,最后探讨形态学处理的实际应用场景。通过仿真测试和FPGA开发实践,帮助学员掌握图像"美容塑型"的核心技术。

MATLAB,verilog,python,opencv,tensorflow,caffe,C,C++ 337

js常用的循环遍历你会几种

前言 数组和对象作为一个最基础数据结构,在各种编程语言中都充当着至关重要的角色,你很难想象没有数组和对象的编程语言会是什么模样,特别是 JS ,弱类型语言,非常灵活。本文带你了解常用数组遍历、对象遍历的使用对比以及注意事项。 数组遍历 随着 JS 的不断发展,截至 ES7 规范已经有十多种遍历方法。下面按照功能类似的方法为一组,来介绍数组的常用遍历方法。 for、forEach、for …of const list = [1, 2, 3, 4, 5, 6, 7, 8,, 10, 11]; for (let

m0_53266704的博客 247

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

js的15种循环遍历,你掌握了几种?

方式一: 原生的 js 循环 1.while 循环: While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。 while (条件) 语句; // 或者 while (条件) 语句; //举例: var i = 0; while (i < 100) { console.log('i 当前为:' + i); i = i...

qq_41899174的博客 6万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JavaScript 中的常用12种循环遍历的方法

【代码】JavaScript 中的常用12种循环遍历的方法。

poywang的博客 1868

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JS几种数组遍历方式总结

JS数组遍历的几种方式JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比第一种:普通for循环代码如下:for(j = 0; j &lt; arr.length; j++) { } 简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间第二种:优化版for循环代码如下...

宁静致远 24万+

几种循环遍历的方法及用法

几种循环遍历的方法及用法 1、for 循环(用于数组的循环遍历)***(常用)*** let arr = [1,2,3]; for (let i=0; i<arr.length; i++){ console.log(i,arr[i])// 0 1,// 1 2,// 2 3 } 2、for in 循环(用于遍历普通对象,for in 循环的时候,不仅遍历自身的属性,还会找到 prototype 上去,所以最好在循环体内加一个判断,就用 obj[i].hasOwnProperty(i),这样就避免遍

The_Fuir_ye的博客 7635

[JavaScript]  JS中如何跳出循环/结束遍历

[JavaScript] JS中如何跳出循环/结束遍历 直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结。可能各位大佬还有其他的办法,我在此表示大佬NB。 序号 方法 break continue return return true return false 结论 1 for循环 成功 跳出本次循环 不合法 不合法 不合法 √ 2 Array.forEach() .

晓风揽月 2587

js中常用的一些遍历方法,及一些跳出循环的方法

1.首先看看跳出循环的方法 1)结束本次循环进入下一次循环: continue:for循环 、 for in 、 for of return true/false:for Each 2)结束整个循环 break:for循环 、 for in 、 for of、while、do{}while()、 try catch:for Each等各种需要终止循环的程序 3)注意:如果有两层fo...

qq_36764510的博客 3314

js几种常用循环使用技巧

在js中的几种常用循环方法 for循环 while循环 for循环 最常用的循环语句,使用时需要注意:第一点,最好使用es6 声明变量,这样是为了防止产生闭包问题。至于什么是闭包大家自己百度一下有很多详细的解释。第二点,循环范围最好设置为一个变量,我们或许会经常这样使用 for(let i=0;i<a.length;i++){ } 这样做有一点不好,那就是每次循环都要计算a.lengt...

weixin_38693408的博客 413

总结:前端常用的循环遍历的方法

声明:以下的循环遍历方法,是我自己总结的,可能不太全,大家可以帮忙一起补全。 1、for循环 let arr = [1,2,3]; for(let i = 0; i < arr.length;i++){ console.log(i,arr[i]) } // 0 1 // 1 2 // 2 3 for循环是js中常用的一个循环工具,用于数组的遍历循环。 2、for in循环 let obj = {name:'zhou',age:'**'} for(let i in obj){ conso.

weixin_46419373的博客 5561

JS数组循环遍历常用方法总结

JS遍历数组常用方法总结: 1. for 循环 2. forEach 3. filter 4. map 5. some 6. every 7. for of 循环 8. find 9. findIndex ......

Ivan的编程随笔 2829

javascript同级遍历_javascript中常见的几种循环遍历

项目开发中,不管是建立在哪个框架基础上,对数据的处理都是必须的,而处理数据离不开各种遍历循环。javascript中循环遍历有很多种方式,记录下几种常见的js循环遍历。一、for循环for循环应该是最普遍的,使用最多的一种循环遍历方法了,所以也导致其可读性和易维护性比较差,但是它可以及时break出循环。let arr = [1,2,3,4,5,6,7]for(let i = 0;iconsole...

weixin_39932611的博客 267

js循环的几种方式总结

前言 只描述了一些最基本的用法,和一些可能遇到的问题。一些细节,或者特殊写法之类的,没有。 1.for循环 最基本的循环方式,不多说。但是我在其它某篇文章上,听别人说,这种最基本的循环才是速度最快的,效率最高的。(就是这https://www.jb51.net/article/… for(var i = 0;i<5;i++){ console.log(i) } 2.for in循环 for in循环是用来遍历对象的。要知道JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据

weixin_43285861的博客 1万+

jsfor循环终止_【JavaScript】JS中如何跳出循环/结束遍历

直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结。可能各位大佬还有其他的办法,我在此表示大佬NB。序号方法breakcontinuereturnreturn truereturn false结论1for循环成功跳出本次循环不合法不合法不合法√2Array.forEach()不合法不合法跳出本次循环跳出本次循环跳出本次循环×3for...in成功跳出本次循环不...

weixin_27012987的博客 2536
上一篇: script标签的type为text/template模板的使用
下一篇: mongo查询常用小干货(指定返回列、排序、为空、以开头等等)
shadow_zed
博客等级 码龄10年 6289粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值