diff --git a/app.js b/app.js index c055ec3..105a69c 100644 --- a/app.js +++ b/app.js @@ -1,12 +1,24 @@ //app.js -function splitQueryParams(params) { - let tempParams = []; - if (Object.keys(params).length <= 0) return tempParams; - for (let key in params) { - tempParams.push(`${key}=${params[key]}`); +function splitQueryParams(params, key) { + let strParams = ''; + if (Object.keys(params).length <= 0) return strParams; + for (let i in params) { + if(params[i] instanceof Object) { + let k = key ? `${key}.${i}` : i; + strParams += splitQueryParams(params[i], k); + } else if(params[i] instanceof Array) { + for(let j = 0; j < params[i].length; j++) { + let k = key ? `${key}[${j}].${i}` : i; + strParams += splitQueryParams(params[i][j], k); + } + } else { + let k = key ? `${key}.${i}` : i; + strParams += `&${k}=${params[i]}` + } } - return tempParams.join("&"); + return strParams; } + ! function () { //获取页面配置并进行页面分享配置 var PageTmp = Page diff --git a/utils/util.js b/utils/util.js index 764bc2c..b217a1c 100644 --- a/utils/util.js +++ b/utils/util.js @@ -14,6 +14,38 @@ const formatNumber = n => { return n[1] ? n : `0${n}` } +// 通过字面量方式实现的函数each +const each = function(object, callback){ + var type = (function(){ + switch (object.constructor){ + case Object: + return 'Object'; + break; + case Array: + return 'Array'; + break; + default: + return 'null'; + break; + } + })(); + // 为数组或类数组时, 返回: index, value + if(type === 'Array' || type === 'NodeList'){ + // 由于存在类数组NodeList, 所以不能直接调用every方法 + [].every.call(object, function(v, i){ + return callback.call(v, i, v) === false ? false : true; + }); + } + // 为对象格式时,返回:key, value + else if(type === 'Object'){ + for(var i in object){ + if(callback.call(object[i], i, object[i]) === false){ + break; + } + } + } + } module.exports = { - formatTime + formatTime, + each }