JS几种常见循环

常见循环,主要包括有for,for…in,for…of,forEach

普通for

遍历数组

var nums = [11,12];
for(var i = 0; i<nums.length;i++){
	console.info(nums[i]);
}
// 打印结果
// 11
// 12

for…in

遍历对象的属性,遍历数组时候是数组的索引。

var nums = [11,12];

for (var property in nums) {
	console.info(property, nums[property]);
}
// 打印结果
// 0 11 
// 1 12

var obj = {
	"name": "小明",
	"age": 20
}
for (var property in obj) {
	console.info(property, obj[property]);
}
// 打印结果
// name 小明 
// age 20

for…of

for…of 语句循环遍历对象,对象必须是可被迭代的iterable类型,如Array, Map, Set。

var nums = [11,12];
for (let item of nums) {
	console.info(item);
}
//打印结果
//11 
//12

var map = new Map();
map.set("name", "Jack");
map.set("age", "25");
for (let item of map) {
	console.info(item);
}
//打印结果
// Array [ "name", "Jack" ]
// Array [ "age", "25" ]

forEach

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
语法

var nums = [11,12];
nums.forEach(function(ele, idx) {
	console.info(ele, idx);
})
//打印结果
// 11 0 
// 12 1

forEach() 本身是不支持的 continue 与 break 语句的,我们可以通过 some 和 every 来实现。

some

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。
var nums = [11, 12, 13];
var result = nums.some(function(ele, idx) {
	if (ele == 12) {
		return; // continue;
		// return false; // continue;
		// return true; // break;
	}
	console.info(ele, idx);
})
console.info(result);
//打印结果
// 11 0 
// 13 2 
// false

every

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。
var nums = [11, 12, 13];
var result = nums.every(function(ele, idx) {
	console.info(ele, idx);
	return ele < 12; //break;
})
console.info(result);
// 打印结果
// 11 0 
// 12 1 
// false

map

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。

var nums = [11,12];
var newArr = nums.map(function(ele, idx) {
	console.info(ele, idx);
	return "new" + ele;
});
console.info(newArr);
//打印结果
// 11 0 
// 12 1 
// Array [ "new11", "new12" ]
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值