@gedit/utils
Advanced tools
Comparing version 0.1.68 to 0.1.69
@@ -31,4 +31,4 @@ export declare function iterToArray<T = any>(iter: IterableIterator<T>): T[]; | ||
/** | ||
* @param {Array} targetArr | ||
* @param {Function?} getter | ||
* @param targetArr | ||
* @param getter | ||
* @returns {Array.<*>} | ||
@@ -40,2 +40,10 @@ * @example | ||
export declare function sortArrayByCharCode<T = any>(targetArr?: T[], getter?: (obj: T) => string | number): T[]; | ||
/** | ||
* 按分类和名字排序 | ||
* @param items | ||
* @param getName | ||
* @param getType | ||
* @param types | ||
*/ | ||
export declare function sortArrayWithTypeAndName<T>(items: T[], getName: (obj: T) => string | number, getType: (obj: T) => string, types: string[]): T[]; | ||
//# sourceMappingURL=array.d.ts.map |
"use strict"; | ||
/* eslint-disable @typescript-eslint/no-explicit-any */ | ||
var __values = (this && this.__values) || function(o) { | ||
@@ -14,4 +15,3 @@ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.sortArrayByCharCode = exports.moveSourceToDest = exports.deleteElement = exports.moveBackward = exports.moveForward = exports.updateArrayItem = exports.arrayUnion = exports.arrayToSet = exports.iterToArray = void 0; | ||
/* eslint-disable @typescript-eslint/no-explicit-any */ | ||
exports.sortArrayWithTypeAndName = exports.sortArrayByCharCode = exports.moveSourceToDest = exports.deleteElement = exports.moveBackward = exports.moveForward = exports.updateArrayItem = exports.arrayUnion = exports.arrayToSet = exports.iterToArray = void 0; | ||
function iterToArray(iter) { | ||
@@ -111,4 +111,4 @@ var e_1, _a; | ||
/** | ||
* @param {Array} targetArr | ||
* @param {Function?} getter | ||
* @param targetArr | ||
* @param getter | ||
* @returns {Array.<*>} | ||
@@ -134,2 +134,9 @@ * @example | ||
} | ||
// 过滤掉后缀名,如 xxxx0001.jpg 取 0001 | ||
var match1 = str1.match(/([0-9]+)\.*[^0-9]*$/); | ||
var match2 = str2.match(/([0-9]+)\.*[^0-9]*$/); | ||
// 使用最后一排的数字进行排序 | ||
if (match1 && match2 && str1.slice(0, match1.index) === str2.slice(0, match2.index)) { | ||
return parseInt(match1[1], 10) - parseInt(match2[1], 10); | ||
} | ||
for (; cursor <= str1.length; cursor++) { | ||
@@ -153,2 +160,26 @@ var A = str1.charCodeAt(cursor); | ||
exports.sortArrayByCharCode = sortArrayByCharCode; | ||
/** | ||
* 按分类和名字排序 | ||
* @param items | ||
* @param getName | ||
* @param getType | ||
* @param types | ||
*/ | ||
function sortArrayWithTypeAndName(items, getName, getType, types) { | ||
var typeSorts = types.reduce(function (res, item, i) { | ||
res[item] = i; | ||
return res; | ||
}, {}); | ||
var data = []; | ||
items.forEach(function (item) { | ||
var type = getType(item); | ||
var arr = data[typeSorts[type]]; | ||
if (!arr) { | ||
arr = data[typeSorts[type]] = []; | ||
} | ||
arr.push(item); | ||
}); | ||
return data.map(function (i) { return sortArrayByCharCode(i, getName); }).flat(); | ||
} | ||
exports.sortArrayWithTypeAndName = sortArrayWithTypeAndName; | ||
//# sourceMappingURL=array.js.map |
{ | ||
"name": "@gedit/utils", | ||
"version": "0.1.68", | ||
"version": "0.1.69", | ||
"license": "MIT", | ||
@@ -32,3 +32,3 @@ "main": "lib/common/index", | ||
}, | ||
"gitHead": "be77214e3b5234a60a0d4c2d889c725c29206bcf" | ||
"gitHead": "1bb1a2c9de07b987e6e1c15053e7278766cbe23c" | ||
} |
/* eslint-disable @typescript-eslint/no-explicit-any */ | ||
export function iterToArray<T = any>(iter: IterableIterator<T>): T[] { | ||
@@ -81,4 +82,4 @@ const result = []; | ||
/** | ||
* @param {Array} targetArr | ||
* @param {Function?} getter | ||
* @param targetArr | ||
* @param getter | ||
* @returns {Array.<*>} | ||
@@ -89,3 +90,4 @@ * @example | ||
*/ | ||
export function sortArrayByCharCode<T = any>(targetArr: T[] = [], getter?: (obj: T) => string | number): T[] { | ||
export function sortArrayByCharCode<T = any>( | ||
targetArr: T[] = [], getter?: (obj: T) => string | number): T[] { | ||
return targetArr.sort((obj1: any, obj2: any) => { | ||
@@ -103,2 +105,9 @@ let str1: string | number = obj1 as string; | ||
} | ||
// 过滤掉后缀名,如 xxxx0001.jpg 取 0001 | ||
const match1 = str1.match(/([0-9]+)\.*[^0-9]*$/); | ||
const match2 = str2.match(/([0-9]+)\.*[^0-9]*$/); | ||
// 使用最后一排的数字进行排序 | ||
if (match1 && match2 && str1.slice(0, match1.index) === str2.slice(0, match2.index) ) { | ||
return parseInt(match1[1], 10) - parseInt(match2[1], 10); | ||
} | ||
for (; cursor <= str1.length; cursor++) { | ||
@@ -119,1 +128,30 @@ const A = str1.charCodeAt(cursor); | ||
} | ||
/** | ||
* 按分类和名字排序 | ||
* @param items | ||
* @param getName | ||
* @param getType | ||
* @param types | ||
*/ | ||
export function sortArrayWithTypeAndName<T>( | ||
items: T[], | ||
getName: (obj: T) => string | number, | ||
getType: (obj: T) => string, | ||
types: string[]): T[] { | ||
const typeSorts: { [key: string]: number } = types.reduce((res, item, i) => { | ||
res[item] = i; | ||
return res; | ||
}, {} as { [key: string]: number }); | ||
const data: T[][] = []; | ||
items.forEach(item => { | ||
const type = getType(item); | ||
let arr = data[typeSorts[type]]; | ||
if (!arr) { | ||
arr = data[typeSorts[type]] = []; | ||
} | ||
arr.push(item); | ||
}); | ||
return data.map(i => sortArrayByCharCode<T>(i, getName)).flat(); | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 2 instances in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 2 instances in 1 package
560434
10607