change 'keysort to keysort_array
				
					
				
			This commit is contained in:
		
							parent
							
								
									7407ac47a2
								
							
						
					
					
						commit
						4f645a44c3
					
				
							
								
								
									
										45
									
								
								coretool.js
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								coretool.js
									
									
									
									
									
								
							@ -10,10 +10,6 @@ module.exports = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  sleep: (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms)),
 | 
					  sleep: (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms)),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  objectize_array (arr, key) {
 | 
					 | 
				
			||||||
    return arr.reduce((obj, item) => ({ ...obj, [item[key]]: item }), {})
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  deepFreeze (obj) {
 | 
					  deepFreeze (obj) {
 | 
				
			||||||
    if (typeof obj !== 'object' || obj === null) {
 | 
					    if (typeof obj !== 'object' || obj === null) {
 | 
				
			||||||
      return obj
 | 
					      return obj
 | 
				
			||||||
@ -316,22 +312,6 @@ module.exports = {
 | 
				
			|||||||
    return (parent[keychain[keychain.length - 1]] = value)
 | 
					    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) {
 | 
					  number_precision (number, precision = 4) {
 | 
				
			||||||
    if (isFinite(number)) // null, '', '0', [] 
 | 
					    if (isFinite(number)) // null, '', '0', [] 
 | 
				
			||||||
      return Number(Number(number).toFixed(precision))
 | 
					      return Number(Number(number).toFixed(precision))
 | 
				
			||||||
@ -339,11 +319,36 @@ module.exports = {
 | 
				
			|||||||
      return 0
 | 
					      return 0
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 返回新的数组
 | 
				
			||||||
  filter_story (story) {
 | 
					  filter_story (story) {
 | 
				
			||||||
    if (Array.isArray(story)) {
 | 
					    if (Array.isArray(story)) {
 | 
				
			||||||
      return story.filter(section => Object.values(section).some(val => val?.trim?.())) // (section.text || section.image || section.video)?.trim?.()
 | 
					      return story.filter(section => Object.values(section).some(val => val?.trim?.())) // (section.text || section.image || section.video)?.trim?.()
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      return []
 | 
					      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