ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
``` $.extend({ // 放入以下代码 }); ``` ## 一、数组元素是否重复 ``` // 数组元素是否重复 isRepeat: function(v, arr, key) { var filterArr = []; if(key) { filterArr = arr.filter(function(v2) { if(v==v2[key]) return v2; }); } else { filterArr = arr.filter(function(v2) { if(v==v2) return v2; }); } return filterArr.length>1; } ``` ## 二、删除数组指定索引值 ``` delArrVal: function(arr, index) { for(var i=0, len=arr.length; i<len; i++) { if(i === index) { arr.splice(i, 1); break; } } } ``` ## 三、json对象转数组 ``` json2arr: function(json) { var arr = []; $.each(json, function(k, v) { arr.push(v); }); return arr; } ``` ## 四、是否是JSON ``` isJSON: function(v) { if(typeof v==='object' && Object.prototype.toString.call(v).toLowerCase()==='[object object]' && !v.length) { return true; } return false; } ``` ## 五、比较JSON ``` diffJSON: function(source, target) { var flag = false; function recursive(src, tgt) { var srcLen = Object.keys(src).length, tgtLen = Object.keys(tgt).length, maxData, minData; if(srcLen >= tgtLen) { maxData = src; minData = tgt; } else { maxData = tgt; minData = src; } for(var k in maxData) { if(maxData.hasOwnProperty(k)) { if(typeof maxData[k] === 'object' && (Array.isArray(maxData[k])||$.isJSON(maxData[k]))) { if(minData[k] !== undefined) { recursive(maxData[k], minData[k]); } else { flag = true; return; } } else { if(maxData[k]!==minData[k]) { flag = true; return; } } } } } recursive(source, target); return flag; } ``` ## 六、返回有变化的数据 ``` getDiffArr: function(source, target) { var result = [], targetCopy = JSON.parse(JSON.stringify(target)); targetCopy.forEach(function(v, i) { if($.diffJSON(source[i], v)) { result.push(v); } }); return result; } ``` ## 七、url search转json ``` search2json: function() { var search = location.search.substr(1); if(search) { var searchArr = search.split('&'); return searchArr.reduce(function(json, v) { var item = v.split('='); json[item[0]] = item[1]; return json; }, {}); } return {}; } ``` ## 八、格式化时间 ``` formatTime: function(date, fmt) { var o = { 'M+': date.getMonth() + 1, // 月份 'd+': date.getDate(), // 日 'h+': date.getHours(), // 小时 'm+': date.getMinutes(), // 分 's+': date.getSeconds(), // 秒 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 'S': date.getMilliseconds(), // 毫秒 }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp('(' + k + ')').test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))); } } return fmt; } ``` ## 九、对比合并数据 ``` // 对比合并数据 compareMergeData: function(source, target) { function recursive(src, tgt) { var srcLen = Object.keys(src).length, tgtLen = Object.keys(tgt).length, maxData, minData; if(srcLen >= tgtLen) { maxData = src; minData = tgt; } else { maxData = tgt; minData = src; } for(var k in maxData) { if(maxData.hasOwnProperty(k)) { if(typeof maxData[k] === 'object' && (Array.isArray(maxData[k])||$.isJSON(maxData[k]))) { if(minData[k] !== undefined) { recursive(maxData[k], minData[k]); } else { maxData[k].animate = true; return; } } else { if(maxData[k]!==minData[k]) { maxData[k].animate = true; return; } } } } } recursive(source, target); return $.extend(source, target); } ``` fmt参数示例:yyyy-MM-dd hh:mm:ss 2018-11-06 18:16:35