循环数组的方法 each
性能测试
- for| 143ms|100000000
- for 每次取length| 1323ms|100000000
- each| 36ms|100000000
- forEach| 1150ms|100000000
function each(dataList, callback, canBreakLoop) {
if (!Array.isArray(dataList)) {
window.console.error('dataList 必须是数组');
return;
}
if (typeof callback !== 'function') {
window.console.error('callback 必须是函数');
return;
}
const _canBreakLoop = typeof canBreakLoop === 'boolean' ? canBreakLoop : false;
const _len = dataList.length;
for (let i = 0; i < _len; i++) {
const callbackFlag = callback(dataList[i], i);
if (_canBreakLoop && !callbackFlag) {
break;
}
}
}
export default each;