var ningbo_allareas = { 330203000000: "海曙区", 330205000000: "江北区", 330206000000: "北仑区", 330211000000: "镇海区", 330212000000: "鄞州区", 330213000000: "奉化区", 330225000000: "象山县", 330226000000: "宁海县", 330281000000: "余姚市", 330201000000: "宁波市本级", 330283000000: "国家高新区", 330284000000: "前湾新区", 330282000000: "慈溪市", 330285000000: "梅山物流产业集聚区", 330287000000: "大榭开发区", 330288000000: "东钱湖", dbxc: "东部新城", } // Production steps of ECMA-262, Edition 5, 15.4.4.19 // Reference: http://es5.github.io/#x15.4.4.19 if (!Array.prototype.map) { Array.prototype.map = function (callback, thisArg) { var T, A, k if (this == null) { throw new TypeError(" this is null or not defined") } // 1. Let O be the result of calling ToObject passing the |this| // value as the argument. var O = Object(this) // 2. Let lenValue be the result of calling the Get internal // method of O with the argument "length". // 3. Let len be ToUint32(lenValue). var len = O.length >>> 0 // 4. If IsCallable(callback) is false, throw a TypeError exception. // See: http://es5.github.com/#x9.11 if (typeof callback !== "function") { throw new TypeError(callback + " is not a function") } // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. if (arguments.length > 1) { T = thisArg } // 6. Let A be a new array created as if by the expression new Array(len) // where Array is the standard built-in constructor with that name and // len is the value of len. A = new Array(len) // 7. Let k be 0 k = 0 // 8. Repeat, while k < len while (k < len) { var kValue, mappedValue // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the HasProperty internal // method of O with argument Pk. // This step can be combined with c // c. If kPresent is true, then if (k in O) { // i. Let kValue be the result of calling the Get internal // method of O with argument Pk. kValue = O[k] // ii. Let mappedValue be the result of calling the Call internal // method of callback with T as the this value and argument // list containing kValue, k, and O. mappedValue = callback.call(T, kValue, k, O) // iii. Call the DefineOwnProperty internal method of A with arguments // Pk, Property Descriptor // { Value: mappedValue, // Writable: true, // Enumerable: true, // Configurable: true }, // and false. // In browsers that support Object.defineProperty, use the following: // Object.defineProperty(A, k, { // value: mappedValue, // writable: true, // enumerable: true, // configurable: true // }); // For best browser support, use the following: A[k] = mappedValue } // d. Increase k by 1. k++ } // 9. return A return A } } if (!Array.prototype.filter) { Array.prototype.filter = function (fun /*, thisArg */) { "use strict" if (this === void 0 || this === null) throw new TypeError() var t = Object(this) var len = t.length >>> 0 if (typeof fun !== "function") throw new TypeError() var res = [] var thisArg = arguments.length >= 2 ? arguments[1] : void 0 for (var i = 0; i < len; i++) { if (i in t) { var val = t[i] if (fun.call(thisArg, val, i, t)) res.push(val) } } return res } } // Production steps of ECMA-262, Edition 5, 15.4.4.18 // Reference: http://es5.github.io/#x15.4.4.18 if (!Array.prototype.forEach) { Array.prototype.forEach = function (fun /*, thisp*/) { var len = this.length if (typeof fun != "function") throw new TypeError() var thisp = arguments[1] for (var i = 0; i < len; i++) { if (i in this) fun.call(thisp, this[i], i, this) } } } // Production steps of ECMA-262, Edition 5, 15.4.4.19 // Reference: http://es5.github.io/#x15.4.4.19 if (!Array.prototype.map) { Array.prototype.map = function (callback, thisArg) { var T, A, k if (this == null) { throw new TypeError(" this is null or not defined") } // 1. Let O be the result of calling ToObject passing the |this| // value as the argument. var O = Object(this) // 2. Let lenValue be the result of calling the Get internal // method of O with the argument "length". // 3. Let len be ToUint32(lenValue). var len = O.length >>> 0 // 4. If IsCallable(callback) is false, throw a TypeError exception. // See: http://es5.github.com/#x9.11 if (typeof callback !== "function") { throw new TypeError(callback + " is not a function") } // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. if (arguments.length > 1) { T = thisArg } // 6. Let A be a new array created as if by the expression new Array(len) // where Array is the standard built-in constructor with that name and // len is the value of len. A = new Array(len) // 7. Let k be 0 k = 0 // 8. Repeat, while k < len while (k < len) { var kValue, mappedValue // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the HasProperty internal // method of O with argument Pk. // This step can be combined with c // c. If kPresent is true, then if (k in O) { // i. Let kValue be the result of calling the Get internal // method of O with argument Pk. kValue = O[k] // ii. Let mappedValue be the result of calling the Call internal // method of callback with T as the this value and argument // list containing kValue, k, and O. mappedValue = callback.call(T, kValue, k, O) // iii. Call the DefineOwnProperty internal method of A with arguments // Pk, Property Descriptor // { Value: mappedValue, // Writable: true, // Enumerable: true, // Configurable: true }, // and false. // In browsers that support Object.defineProperty, use the following: // Object.defineProperty(A, k, { // value: mappedValue, // writable: true, // enumerable: true, // configurable: true // }); // For best browser support, use the following: A[k] = mappedValue } // d. Increase k by 1. k++ } // 9. return A return A } } function countTotal(arr, keyName) { let $total = 0 $total = arr.reduce(function (total, currentValue, currentIndex, arr) { return currentValue[keyName] ? parseFloat(total) + parseFloat(currentValue[keyName]) : parseFloat(total) }, 0) return $total } function unique(arr1) { // const res = new Map(); // // return arr1.filter((a) => !res.has(a.areaCode) && res.set(a.areaCode, 1)) // return arr1; var hash = {} var Arr = arr1.reduce(function (arr, current) { hash[current.areaCode] ? "" : (hash[current.areaCode] = true && arr.push(current)) return arr }, []) return Arr } function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)) if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) * cm; } else { arg1 = Number(arg1.toString().replace(".", "")) * cm; arg2 = Number(arg2.toString().replace(".", "")); } } else { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")); } return (arg1 + arg2) / m }