diff --git a/utils.js b/utils.js index bb95454..220479f 100644 --- a/utils.js +++ b/utils.js @@ -281,6 +281,31 @@ function randItemByWeight(list, fieldName) { return ret; } + +function mapToArray(mapObj) { + const result = []; + mapObj.forEach((val, key) => { + result.push(val); + }); + return result; +} + +function mapToObject(mapObj) { + const result = {}; + mapObj.forEach((val, key) => { + result[key] = val; + }); + return result; +} + +async function serial(obj, cb) { + let i = 0; + const arr = obj instanceof Map ? mapToArray(obj) : obj; + for (let val of arr) { + await cb(val, i++); + } +} + exports.rspErr = rspErr; exports.rspOk = rspOk; exports.rspData = rspData; @@ -316,3 +341,6 @@ exports.excelToJson = excelToJson; exports.getArgv = getArgv; exports.hasKey = hasKey; exports.isPureNumberStr = isPureNumberStr; +exports.serial = serial; +exports.mapToArray = mapToArray; +exports.mapToObject = mapToObject;