@iicoding/utils
Version:
Browser 端 - 类型判断 - 类似 koa 的异步compose - sleep - 扩展对象属性 - 扩展 storage 对象功能
163 lines (161 loc) • 4.49 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/array/index.ts
var array_exports = {};
__export(array_exports, {
arrayDiff: () => arrayDiff,
computeNeighborTwoSum: () => computeNeighborTwoSum,
filterNumberArray: () => filterNumberArray,
generateNumberArray: () => generateNumberArray,
generateSpecifyValueAndLengthArray: () => generateSpecifyValueAndLengthArray,
getAllPossibleCompose: () => getAllPossibleCompose,
getSourceItemInTarget: () => getSourceItemInTarget,
multiAreaPossibleCompose: () => multiAreaPossibleCompose,
objectSort: () => objectSort,
shuffle: () => shuffle,
specialNumberData: () => specialNumberData
});
module.exports = __toCommonJS(array_exports);
var import_type_detection = require("../type-detection");
var arrayDiff = (source, target) => {
return source.filter((item) => target.includes(item));
};
var computeNeighborTwoSum = (datasource, subtractionNumber) => {
if (!Array.isArray(datasource))
return [];
const source = [...datasource];
const result = [];
while (source.length > 1) {
const [one, two] = source;
const sum = one + two;
if ((0, import_type_detection.isNumber)(sum)) {
result.push(
subtractionNumber ? sum > subtractionNumber ? sum - subtractionNumber : sum : sum
);
source.shift();
}
}
return Array.from(new Set(result)).sort((a, b) => a - b);
};
var specialNumberData = () => [
6,
15,
17,
22,
23,
29,
31,
32,
37,
40,
43,
46,
49,
52,
53,
58,
59,
60,
66,
67,
68,
69,
74,
75,
76,
77,
80
];
var shuffle = (arr) => {
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
};
var generateNumberArray = (length, startIndex = false) => {
return [...Array.from({ length }, (_, i) => startIndex ? i : i + 1)];
};
var generateSpecifyValueAndLengthArray = (length, value) => Array.from({ length }, () => value);
var getSourceItemInTarget = (source, target) => {
return target.filter((item) => source.includes(item));
};
var objectSort = (source, sortProperties, defaultValue) => {
if (Array.isArray(source)) {
source.sort((a, b) => {
return (a[sortProperties] || defaultValue) - (b[sortProperties] || defaultValue);
});
}
};
var filterNumberArray = (source) => {
return Array.from(
new Set(source.filter((item) => (0, import_type_detection.isNumber)(item) && !Number.isNaN(item)))
);
};
var getAllPossibleCompose = (list, options) => {
const result = [];
if (!Array.isArray(list)) {
console.warn("请传入一个数字组成的数组");
return result;
}
const uniqList = filterNumberArray(list);
const {
max = 80,
// continuous = 3,
minLength = 5
} = options || {};
const clwArrayLen = uniqList.length;
if (clwArrayLen > max) {
console.warn("数组最大长度超出限制", max);
return result;
}
if (clwArrayLen < minLength) {
console.warn("数组不满足最小长度", minLength);
return result;
}
const temp = [];
function cwlBackTrack(start) {
if (temp.length === minLength) {
result.push([...temp]);
return;
}
for (let i = start; i < clwArrayLen; i++) {
temp.push(uniqList[i]);
cwlBackTrack(i + 1);
temp.pop();
}
}
cwlBackTrack(0);
return result;
};
var multiAreaPossibleCompose = () => {
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
arrayDiff,
computeNeighborTwoSum,
filterNumberArray,
generateNumberArray,
generateSpecifyValueAndLengthArray,
getAllPossibleCompose,
getSourceItemInTarget,
multiAreaPossibleCompose,
objectSort,
shuffle,
specialNumberData
});