JavaScript中For循环和Map循环耗时比较
先看函数代码:
(function () { let utcTimeArray = []; let utcDateArrayAll = []; let utcDateArray = [2017/09/18 23:59:00, 2017/09/17 23:00:00, 2017/09/16 22:20:00, 2017/09/15 22:11:00, 2017/09/14 22:44:00, 2017/09/13 22:30:00, 2017/09/12 23:10:00]; let time1 = new Date().getTime(); for (let count = 0; count < 10000; count ++) { utcDateArrayAll = utcDateArrayAll.concat(utcDateArray); } let time2 = new Date().getTime(); for (let date of utcDateArrayAll) { utcTimeArray.push(new Date(date).getTime()); } let time3 = new Date().getTime(); utcDateArrayAll.map((date) => { utcTimeArray.push(new Date(date).getTime()); }); let time4 = new Date().getTime(); console.log("length: " + utcDateArrayAll.length); console.log("Concat Array lost time: " + (time2 - time1)); console.log("For lost time: " + (time3 - time2)); console.log("Map lost time: " + (time4 - time3)); })();
得到的结果:
length: 70000 Concat Array lost time: 1634 For lost time: 42 Map lost time: 50
总结:
JavaScript函数中,如果数据量比较大,比如说上万的数据,For of循环速度更快,只有Map耗时的80%左右,故在大数据遍历的时候,建议使用For循环遍历。