246 lines
7.3 KiB
JavaScript
246 lines
7.3 KiB
JavaScript
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
|
|
}
|