utiller 1.0.321 → 1.0.322

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.
@@ -3596,6 +3596,41 @@ var Utiller = /*#__PURE__*/function () {
3596
3596
  return predict(value);
3597
3597
  }));
3598
3598
  }
3599
+
3600
+ /**
3601
+ *
3602
+ const array = [
3603
+ { serial: 'A023' },
3604
+ { serial: 'Z001' },
3605
+ { serial: 'C002' },
3606
+ { serial: 'G123' },
3607
+ { serial: 'A001' },
3608
+ { serial: 'A999' }
3609
+ ];
3610
+ mutateBy(array, (item) => {
3611
+ const serial = item.serial;
3612
+ const match = serial.match(/^([A-Z]+)(\d+)$/i);
3613
+ const [letter, number] = match ? [match[1], parseInt(match[2], 10)] : [serial, 0];
3614
+ return [letter, number]; // 多層排序:先字母,再數字
3615
+ });
3616
+ *
3617
+ * [ { serial: 'A001' }, { serial: 'A023' }, { serial: 'A999' }, { serial: 'C002' }, { serial: 'G123' }, { serial: 'Z001' } ]
3618
+ *
3619
+ *
3620
+ * 通用的排序變異工具:依照 predict 提供的排序 key 對 array 進行原地排序(mutated)
3621
+ *
3622
+ * @param {Array} array - 要排序的陣列(會就地變異)
3623
+ * @param {Function} predict - 回傳排序 key(可以是陣列以支援多層排序)
3624
+ */
3625
+ }, {
3626
+ key: "mutateBy",
3627
+ value: function mutateBy(array) {
3628
+ var predict = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (item) {
3629
+ return item;
3630
+ };
3631
+ var sorted = _lodash["default"].sortBy(array, predict);
3632
+ array.splice.apply(array, [0, array.length].concat((0, _toConsumableArray2["default"])(sorted)));
3633
+ }
3599
3634
  }]);
3600
3635
  }();
3601
3636
  var _default = exports["default"] = Utiller;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utiller",
3
- "version": "1.0.321",
3
+ "version": "1.0.322",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -11,7 +11,7 @@
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
13
  "configerer": "^1.0.11",
14
- "utiller": "^1.0.320",
14
+ "utiller": "^1.0.321",
15
15
  "linepayer": "^1.0.4",
16
16
  "databazer": "^1.0.12",
17
17
  "lodash": "^4.17.20",