tools-for-js 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,4 +49,5 @@ import { API } from 'tools-for-js'
49
49
  | 按指定长度分段字符串 | splitString |
50
50
  | 将对象转换为查询字符串 | objectToQs |
51
51
  | 计算数据分页 | getPagination |
52
- | 根据[key]值排序,相同时则根据时间[timeKey]值排序 | sortByKeyAndTime |
52
+ | 根据 key 值排序,相同时则根据时间 timeKey 值排序 | sortByKeyAndTime |
53
+ | 根据 key 获取对象值 | getValByKey |
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.treeLastChildSum = exports.sortByKeyAndTime = exports.randomNumEnum = exports.getValueFromArray = exports.getPagination = exports.deWeightArray = exports.checkKeyEmpty = exports.arrayToTree = exports.arrExchange = exports.arrEleMove = void 0;
7
7
  var _calculate = require("./calculate");
8
8
  var _common = require("./common");
9
+ var _object = require("./object");
9
10
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
10
11
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
12
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -176,7 +177,7 @@ var arrayToTree = exports.arrayToTree = function arrayToTree(array, config) {
176
177
  var getValueFromArray = exports.getValueFromArray = function getValueFromArray(list, labelVal) {
177
178
  var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'label';
178
179
  var value = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'value';
179
- list = JSON.parse(JSON.stringify(list));
180
+ list = (0, _common.deepCopy)(list);
180
181
  var res = list.find(function (item) {
181
182
  return item[label] == labelVal;
182
183
  }) || {};
@@ -216,7 +217,8 @@ var randomNumEnum = exports.randomNumEnum = function randomNumEnum(array, num) {
216
217
  var getPagination = exports.getPagination = function getPagination(list, params) {
217
218
  var page = params.page,
218
219
  pageSize = params.pageSize;
219
- return list.value.slice((page - 1) * pageSize, page * pageSize);
220
+ list = (0, _common.deepCopy)(list);
221
+ return list.slice((page - 1) * pageSize, page * pageSize);
220
222
  };
221
223
 
222
224
  /*******
@@ -239,15 +241,15 @@ var sortByKeyAndTime = exports.sortByKeyAndTime = function sortByKeyAndTime(list
239
241
  order = _ref3$order === void 0 ? 'asc' : _ref3$order,
240
242
  _ref3$timeOrder = _ref3.timeOrder,
241
243
  timeOrder = _ref3$timeOrder === void 0 ? 'desc' : _ref3$timeOrder;
242
- var listCopy = (0, _common.deepCopy)(list);
243
- return listCopy.sort(function (a, b) {
244
- var a_val = a[key];
245
- var a_time = new Date(a[timeKey]);
246
- var b_val = b[key];
247
- var b_time = new Date(b[timeKey]);
244
+ list = (0, _common.deepCopy)(list);
245
+ return list.sort(function (a, b) {
246
+ var a_val = (0, _object.getValByKey)(a, key);
247
+ var a_time = +new Date((0, _object.getValByKey)(a, timeKey));
248
+ var b_val = (0, _object.getValByKey)(b, key);
249
+ var b_time = +new Date((0, _object.getValByKey)(b, timeKey));
248
250
  if (a_val === b_val) {
249
251
  return timeOrder === 'desc' ? b_time - a_time : a_time - b_time;
250
252
  }
251
- return order === 'asc' ? a[key] - b[key] : b[key] - a[key];
253
+ return order === 'asc' ? a_val - b_val : b_val - a_val;
252
254
  });
253
255
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.objectToQs = void 0;
6
+ exports.objectToQs = exports.getValByKey = void 0;
7
7
  /*******
8
8
  * @description: 将对象转换为查询字符串
9
9
  * @author: 琴时
@@ -15,4 +15,21 @@ var objectToQs = exports.objectToQs = function objectToQs(obj) {
15
15
  return Object.keys(obj).map(function (key) {
16
16
  return "".concat(encodeURIComponent(key), "=").concat(encodeURIComponent(obj[key]));
17
17
  }).join('&');
18
+ };
19
+
20
+ /*******
21
+ * @description: 根据key获取对象值
22
+ * @author: 琴时
23
+ * @param {Object} obj
24
+ * @param {String} key
25
+ * @return {*}
26
+ * @example: getValByKey({a: {b: {c: 1}}}, 'a.b.c') => 1
27
+ */
28
+ var getValByKey = exports.getValByKey = function getValByKey(obj, key) {
29
+ var keys = key.split('.');
30
+ var value = obj;
31
+ for (var i = 0; i < keys.length; i++) {
32
+ value = value[keys[i]];
33
+ }
34
+ return value;
18
35
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tools-for-js",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "基于babel构建的javascript工具库",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {