change 'keysort
to keysort_array
This commit is contained in:
parent
7407ac47a2
commit
4f645a44c3
47
coretool.js
47
coretool.js
@ -10,10 +10,6 @@ module.exports = {
|
||||
|
||||
sleep: (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms)),
|
||||
|
||||
objectize_array (arr, key) {
|
||||
return arr.reduce((obj, item) => ({ ...obj, [item[key]]: item }), {})
|
||||
},
|
||||
|
||||
deepFreeze (obj) {
|
||||
if (typeof obj !== 'object' || obj === null) {
|
||||
return obj
|
||||
@ -316,22 +312,6 @@ module.exports = {
|
||||
return (parent[keychain[keychain.length - 1]] = value)
|
||||
},
|
||||
|
||||
/**
|
||||
* 对数组中的对象,按对象的key进行sortType排序
|
||||
* @param key 数组中的对象为object,按object中的key进行排序
|
||||
* @param sortType true为降序;false为升序
|
||||
* 用法:
|
||||
* var ary=[{id:1,name:"b"},{id:2,name:"b"}];
|
||||
* ary.sort(keysort('name',true));
|
||||
* ary.sort(keysort('name',false));
|
||||
* ary.sort(keysort('id',false));
|
||||
*/
|
||||
keysort (key, sortType) {
|
||||
return function (a, b) {
|
||||
return sortType ? ~~(a[key] < b[key]) : ~~(a[key] > b[key])
|
||||
}
|
||||
},
|
||||
|
||||
number_precision (number, precision = 4) {
|
||||
if (isFinite(number)) // null, '', '0', []
|
||||
return Number(Number(number).toFixed(precision))
|
||||
@ -339,11 +319,36 @@ module.exports = {
|
||||
return 0
|
||||
},
|
||||
|
||||
// 返回新的数组
|
||||
filter_story (story) {
|
||||
if (Array.isArray(story)) {
|
||||
return story.filter(section => Object.values(section).some(val => val?.trim?.())) // (section.text || section.image || section.video)?.trim?.()
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 对数组中的对象,按对象的key进行sortType排序
|
||||
*/
|
||||
keysort_array (arr, key, order = 'ASC') {
|
||||
if (Array.isArray(arr) && typeof (key) === 'string' && key) {
|
||||
return arr.sort((a, b) => { // 负数: a, b. 正数: b, a
|
||||
if (typeof (a[key]) === 'number' && typeof (b[key]) === 'number') {
|
||||
return (order === 'DESC') ? b[key] - a[key] : a[key] - b[key]
|
||||
} else if (typeof (a[key]) === 'string' && typeof (b[key]) === 'string') {
|
||||
return (order === 'DESC') ? b[key].localeCompare(a[key]) : a[key].localeCompare(b[key])
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
})
|
||||
} else {
|
||||
return arr
|
||||
}
|
||||
},
|
||||
|
||||
objectize_array (arr, key) { // 是 Object.keys/values/entries 的反向操作,相当于 Array.objectize,把数据转成对象
|
||||
return arr.reduce((obj, item) => ({ ...obj, [item[key]]: item }), {})
|
||||
},
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user