您的位置:首页 > 其它

循环遍历总结(for/foreach/forin/forof/map/some/filter)

2017-10-27 16:52 736 查看

for-of 循环

代码示例

for (var value of myArray) {
console.log(value);
}


循环的对象需为一个数组

无法记录索引

可以相应break、continue、return语句

可用来遍历对象属性

可用来遍历对象的自值

无法获取到对象或数组遍历的索引

for 循环

最基础的循环,循环内部可用到循环索引

- 代码示例

for (var index = 0; index < myArray.length; index++) {
console.log(myArray[index]);
}


foreach循环

myArray.forEach(function (value) {
console.log(value);
});


无法使用break中断循环或用return返回到外层函数

for-in循环

for (var index in myArray) {
console.log(myArray[index]);
}


赋值给index的值不是实际的数字,是字符串’0’、’1’、’2’、’3’…..用于计算时可能出现未知的错误

for-in循环会遍历自定义属性

在某些情况下,这段代码可能按照随机顺序遍历数组元素

简而言之,for-in 是为普通对象设计的

map

arr.map(function(m,n,k){
console.log(m); //val
console.log(n); //index
console.log(n); //arr
})


函数中第一个参数为遍历某一项的值

函数中第二个参数为遍历某一项的索引

函数值后的参数指向数组本身

some

用于
4000
检测数组中元素是否满足指定条件

如果有一个元素满足就返回true,不再检测

some() 不会对空数组进行检测。

some() 不会改变原始数组。

$scope.documents.some(function (item) {
if (item._id === $scope.currentDocument._id) {
$scope.currentDocument = item;
return true;
} else {
return false;
}
});


filter

过滤数组中的元素,以下面的数组记录重复值为例

function uniqSet(arr) {
var seen = new Set();
return arr.filter(function(el) {
if(!seen.has(el)) {
seen.add(el);
return true;
}
return false;
});
}


以上代码中的参数el为数组每次遍历到的那个值

使用return结束本次循环

EDN

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐