amos-tool
Version:
amos ui tool
82 lines (80 loc) • 2.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"), _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")), deepCopy = require("./_deepCopy"), utils = require("./utils"), arrayUtils = {
arrayIntersection: function() {
if (arguments.length > 0) {
for (var r = deepCopy(arguments[0]), e = 1; e < arguments.length; e++) {
var t = arguments[e];
Array.isArray(t) || console.error(t + "不是数组,不能求交集"), r = r.filter(function(r, e) {
return t.indexOf(r) >= 0;
});
}
return r;
}
return [];
},
arrayToObject: function(r, e) {
for (var t = e && e.plainObjects ? Object.create(null) : {}, n = 0; n < r.length; ++n) void 0 !== r[n] && (t[n] = r[n]);
return t;
},
merge2DArraysDiagonally: function(r, e) {
for (var t = [], n = Math.max(r.length, e.length), a = r[0].length, u = e[0].length, o = function(r) {
return Array(r).fill(null);
}, l = 0; l < n; l++) {
var i = r[l] || o(a), f = e[l] || o(u);
t[l] = [].concat((0, _toConsumableArray2.default)(i), (0, _toConsumableArray2.default)(f));
}
return t;
},
deduplicateAndSort: function(r, e) {
var t = (0, _toConsumableArray2.default)(new Set(r));
return t.sort(e), t;
},
removeByIndex: function(r, e) {
if (utils.isNumber(e)) r.splice(e, 1); else if (utils.isArray(e)) for (var t = arrayUtils.deduplicateAndSort(e, function(r, e) {
return r - e;
}), n = 0; n < t.length; n++) {
var a = t[n] - n;
a < r.length && r.splice(a, 1);
}
return r;
},
calculateRanks: function(r) {
for (var e = {}, t = r.slice().sort(function(r, e) {
return r - e;
}), n = 1, a = t[0], u = 0; u < t.length; u++) {
var o = t[u];
o !== a && (n = u + 1, a = o), e[o] ? (e[o].count++, e[o].sum += n) : e[o] = {
count: 1,
sum: n
};
}
return r.map(function(r) {
return e[r] ? e[r].sum / e[r].count : void 0;
});
},
moveIndex: {
next: function(r, e) {
e.sort(function(r, e) {
return r - e;
});
var t = Math.max.apply(Math, (0, _toConsumableArray2.default)(e));
if (t >= 0 && t < r.length - 1) for (var n = e.length - 1; n >= 0; n--) {
var a = e[n], u = [ r[a + 1], r[a] ];
r[a] = u[0], r[a + 1] = u[1];
}
return r;
},
prev: function(r, e) {
e.sort(function(r, e) {
return e - r;
});
var t = Math.min.apply(Math, (0, _toConsumableArray2.default)(e));
if (t >= 1 && t < r.length) for (var n = e.length - 1; n >= 0; n--) {
var a = e[n], u = [ r[a], r[a - 1] ];
r[a - 1] = u[0], r[a] = u[1];
}
return r;
}
}
};
module.exports = arrayUtils;