荣新IT培训中心
全国咨询热线:400-1335-066
您现在的位置:首页>技术文章 > 正文

forEach跳出循环的三大方法

时间:2017-08-08 11:28:54 来源:荣新IT教育培训 作者:荣新科技
荣新IT今天带来的是关于java的一个小知识,万变不离其宗,很多东西到了一定的水平和程度,就是殊途同归。代码也是这样,很多东西可以用不同的代码实现同样的功效。下面一起来看一看。
第一种:污染forEach

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

Array.prototype.forEach = function(fun /*, thisArg */)

{

'use strict';

if (this === void 0 || this === null)

throw new TypeError();

var t = Object(this);

var len = t.length >>> 0;

if (typeof fun !== 'function')

throw new TypeError();

var thisArg = arguments.length >= 2 ? arguments[1] : void 0;

for (var i = 0; i < len; i++)

{

if (i in t && fun.call(thisArg, t[i], i, t) === false)

return false;

}

return true;

};

let outArr = [];

arr.forEach(obj => {

console.log(obj);

if (obj < 3) {

outArr.push(obj);

} else {

return false;

}

});

第二种方法:用替代品

1. 用lodash的_. forEach代替 const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; const _ = require('lodash'); let outArr = []; _.forEach(arr, (index, obj) => { console.log(obj); if (obj < 3) { outArr.push(obj); } else { return false; } });

2.用some替代    const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; let outArr = []; arr.some((obj) => { console.log(obj); if (obj < 3) { outArr.push(obj); } else { return true; } });

3.用every代替    const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; let outArr = []; arr.every((obj) => { console.log(obj); if (obj < 3) { outArr.push(obj); } else { return false; } return true; });

第三种方法:try catch
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; const _ = require('lodash'); let outArr = []; try { arr.forEach(obj => { console.log(obj); if (obj < 3) { outArr.push(obj); } else { throw new Error('brack'); } }); } catch (err) { }

怎么样?是不是又get到了一个新的小知识。荣新IT温馨提示,知识点点滴滴皆是细节。细节做的好不好,决定你能走多远。让我们一起努力,向大神之路前进。