JS 循环遍历总结

news/2024/7/19 13:08:48 标签: js, javascript, 前端

for

  • 介绍
js">for 语句用于创建一个循环,它包含了三个可选的表达式,这三个表达式被包围在圆括号之中,
使用分号分隔,后跟一个用于在循环中执行的语句(通常是一个块语句)。
  • 示例
js">var i = 0;
for (; i < 9; i++) {
    console.log(i);
    // more statements
}

for…in

  • 介绍
js">1.for...in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性。
2.for ... in是为遍历对象属性而构建的,不建议与数组一起使用
3.数组可以用Array.prototype.forEach()for ... of
需要检查其中的任何键是否为某值的情况时,推荐用for ... in4.如果你只要考虑对象本身的属性,而不是它的原型,
那么使用 getOwnPropertyNames() 或执行 hasOwnProperty() 来确定某属性是否是对象本身的属性
(也能使用propertyIsEnumerable)
  • 语法
js">for (variable in object)
  statement
  • 示例
js">var triangle = {a: 1, b: 2, c: 3};

function ColoredTriangle() {
  this.color = 'red';
}

ColoredTriangle.prototype = triangle;

var obj = new ColoredTriangle();

for (var prop in obj) {
  if (obj.hasOwnProperty(prop)) {
    console.log(`obj.${prop} = ${obj[prop]}`);
  } 
}

// Output:
// "obj.color = red"

for…of

  • 介绍
js">1.for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句
2.可以遍历Array
3.可以遍历Map,Set,arguments对象,dom对象
4.对于for...of的循环,可以由break, throw  continuereturn终止。

//for..in for...of 区别
for...in 语句以任意顺序迭代对象的可枚举属性。
for...of 语句遍历可迭代对象定义要迭代的数据。
  • 示例
  1. 迭代数组
js">let iterable = [10, 20, 30];

for (let value of iterable) {
    value += 1;
    console.log(value);
}
// 11 // 21 // 31
  1. 迭代String
js">let iterable = "boo";

for (let value of iterable) {
  console.log(value);
}
// "b" // "o" // "o"
  1. 迭代Map
js">let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);

for (let entry of iterable) {
  console.log(entry);
}
// ["a", 1]
// ["b", 2]
// ["c", 3]

for (let [key, value] of iterable) {
  console.log(value);
}
// 1
// 2
// 3
  1. 迭代Set
js">let iterable = new Set([1, 1, 2, 2, 3, 3]);

for (let value of iterable) {
  console.log(value);
}
// 1
// 2
// 3
  1. arguments对象
js">(function() {
  for (let argument of arguments) {
    console.log(argument);
  }
})(1, 2, 3);

// 1
// 2
// 3

forEach

js">forEach 是Array原型上的方法
循环不可中止

http://www.niftyadmin.cn/n/1852511.html

相关文章

iperf网络测试

iperf网络测试文档地址&#xff1a; https://www.jianshu.com/p/942a9d9bc704 转载于:https://www.cnblogs.com/zhangb8042/p/10238624.html

JS 数组篇 数组排序方法总结

生成乱序数组 function arrRandom() {let arr [];for (let i 0; i < 10; i) {let num parseInt(Math.random() * 500);arr.push(num);}return arr; }sort() /**sort 排序*/ let arr arrRandom(); arr.sort((a, b) > a - b); console.log("sort-----" ar…

利用批處理自動在異地備份數據庫

利用批處理自動在異地備份數據庫 在日常數據庫管理中&#xff0c;我們通常採用各種方法將數據庫數據進行備份&#xff0c;目的是保證數據的安 全&#xff0c;而各種備份方法都有自己的優缺點&#xff0c;這裡向大家推薦一種&#xff1a;假設有機器PC-A和PC-B,P C-A安裝了DB(SQ…

JS 基础篇(八) 深拷贝与浅拷贝

前提 堆栈的概念 在javascript中&#xff0c;Object&#xff0c;Array&#xff0c;Function是放到堆中&#xff0c; Number&#xff0c;String&#xff0c;Null&#xff0c;Boolean存放在栈中指针 个人理解像一个内存地址&#xff0c;指向了数据存放的堆中数据存储 关于堆…

ffpmeg参数说明

最近在研究如何将.avi,wmv等文件通过程序自动转为flv文件&#xff0c;结果发现其实是可以的&#xff0c;要搞成不是那么难的&#xff0c;主要是ffpmeg这东西&#xff0c;转了相关的参数如下&#xff0c;方便日后参考ffmpeg.exe -i F:\闪客之家\闪客之歌.mp3 -ab 56 -ar 22050 -…

GZS与小公园(DFS)

Description 某天GZS漫步在学校新建的小公园&#xff0c;他发现那里建成了一些水池和小河道。我们暂且把它们统一看成水池。假设公园旁有一张小公园的地图&#xff0c;上面仅标识了此处是否是水池&#xff0c;你能帮GZS计算出该地图中一共有几个水池吗。 Input 第一行输入一个整…

JS 基础篇(九) 函数防抖和函数节流

函数防抖 函数防抖&#xff1a;高频率触发&#xff08;比如10分钟内一直触发&#xff09;的时候&#xff0c;只执行一次&#xff0c;第一次或者最后一次。重点在只执行一次。 在事件被触发n秒后再执行回调&#xff0c;如果在这n秒内又被触发&#xff0c;则重新计时。 应用场景…

c#,随机数,random

摘自&#xff1a;http://www.pcjx.com/Dotnet/C/208333.html我们在做能自动生成试卷的考试系统时&#xff0c;常常需要随机生成一组不重复的题目&#xff0c;在.net Framework中提供了一个专门用来产生随机数的类System.Random。对于随机数&#xff0c;大家都知道&#xff0c;计…