c++for循环求最大公约数_不数不知道,一数吓一跳,JS里循环竟高达10多种 !

1、for循环
//  let arr = [1, 2, 3];//  for (let i = 10; i < arr.length; i++) {//   console.log(i, arr[i]);//  }

while和do...while就省拉

2、for..in、for...of
2.1 for...in 循环:只能获得对象的键名,不能获得键值,for...of 循环:允许遍历获得键值
//  var arr = ["red", "green", "blue"];//  for (let item in arr) {//   console.log("for in item", item); //0,1,2//  }//  for (let item of arr) {//   console.log("for of item", item); //red green blue//  }
2.2 对于普通对象,for...in遍历键名,for..of直接用会报错
//  let obj = {//   name: "Jim Green",//   age: 12,//  };//  for (let key in obj) {//   console.log(key); //name age//  }//  for (let key of Object.keys(obj)) {//   console.log(key); //name age//  }
2.3 for...in 循环不仅遍历数字键名,还会遍历手动添加的其它键,甚至包括原型链上的键。for...of 则不会这样
//  let arr = [1, 2, 3];//  arr.set = "world"; // 手动添加的键//  Array.prototype.name = "hello"; // 原型链上的键//  for (let item in arr) {//   console.log(item); //0,1,2 ,set,name//  }//  for (let value of arr) {//   console.log(value); //1 2 3//  }
2.4 forEach 无法用return、break、continue, for..in for...of可以
//  let arr = [1, 2, 3, 5, 9];//  arr.forEach((item) => {//   if (item % 2 === 0) {//    return;//   }//   console.log("item", item); //1 3 5 9//  });//  for (let item in arr) {//   if (arr[item] % 2 === 0) {//    break;//   }//   console.log("item", arr[item]); //1//  }//  for (let item of arr) {//   if (item % 2 === 0) {//    break;//   }//   console.log("item", item); //1//  }
2.5、无论是 for...in 还是 for...of 都不能遍历出 Symbol 类型的值,遍历 Symbol 类型的值需要用 Object.getOwnPropertySymbols() 方法
//  let a = Symbol("a");//  let b = Symbol("b");//  let obj = {//   [a]: "hello",//   [b]: "world",//   c: "es6",//   d: "dom",//  };//  for (let key in obj) {//   console.info(obj[key]); //es6、domo//  }//  let objSymbols = Object.getOwnPropertySymbols(obj);//  console.info(objSymbols); // [Symbol(a), Symbol(b)]//  objSymbols.forEach((item) => {//   console.info(item.toString() + " --> " + obj[item]); //Symbol(a) --> hello Symbol(b) --> world//  });//
3、数组遍历
3.1 map方法和forEach方法一样,只能遍历数组,不能遍历对象,map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
//  let arr = [1, 2, 3];//  let tt = arr.map(function (i) {//   console.log(i);//   return i * 2; //[2,4,6]//  });
3.2 filter 方法是 Array 对象内置方法,它会返回通过过滤的元素,不改变原来的数组
//  let arr = [1, 2, 3];//  let tt = arr.filter(function (i) {//   return i > 1;//  });//  // [2,3]
3.3 some() 方法用于检测数组中的元素是否满足指定条件(函数提供),返回 boolean 值,不改变原数组
//  let arr = [1, 2, 3];//  let tt = arr.some(function (i) {//   return i > 1;//  });//  // true
3.4 Array every() 方法every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供),返回 boolean 值,不改变原数组
//  let arr = [1, 2, 3];//  let tt = arr.some(function (i) {//   return i > 1;//  });//  // 检测数组中元素是否都大于1//  // false
3.5 reduce方法
 var arr = [3, 9, 4, 3, 6, 0, 9];   var sum = arr.reduce(function (prev, cur) {   return prev + cur; //求数组之和   }, 0); // prev的初始值为0,第一次时cur为3,完了后下一次的prev为3 cur为9   var max = arr.reduce(function (prev, cur) {    return Math.max(prev, cur); //求最大值   });   var newArr = arr.reduce(function (prev, cur) {  prev.indexOf(cur) === -1 && prev.push(cur);    return prev; //去重,第一次prev为[], 在prev找3,没有找到就把3加到数组中,作为下一次的prev   }, []);

ea900a5b62f9219e88067451d8cdf0f6.png

扫码关注【程序员有道】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值