增加Obejct.groupBy和Map.groupBy
parent
0afc54671b
commit
be25f2dd4b
|
@ -8,9 +8,14 @@
|
|||
```js
|
||||
├── Obejct
|
||||
│ └── .empty(any) // 判断对象是否为空对象
|
||||
│ └── .groupBy(arr, fn) // 数组分组, 返回分组后的对象
|
||||
│ └── .hasOwn(any, key) // 安全版的 Object.prototype.hasOwnProperty()
|
||||
├── Obejct.prototype
|
||||
│ └── .toParams() // 把对象转为 key1=value1&key2=value2 格式
|
||||
│
|
||||
├── Map
|
||||
│ └── .groupBy(any) // 数组分组, 返回分组后的对象
|
||||
│
|
||||
├── Array.prototype
|
||||
│ ├── .flat(depth) // 数组降维
|
||||
│ ├── .flatMap(fn) // 等价于 map(fn) -> flat(1)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "es.shim",
|
||||
"version": "2.2.1",
|
||||
"version": "2.2.2",
|
||||
"description": "实现部分新API, 以及一些常用的扩展方法",
|
||||
"keyworks": [
|
||||
"es5",
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
* @date 2022/01/27 15:33:09
|
||||
*/
|
||||
|
||||
import './lib/object.js'
|
||||
import './lib/array.js'
|
||||
import './lib/object.js'
|
||||
import './lib/map.js'
|
||||
import './lib/string.js'
|
||||
import './lib/number.js'
|
||||
import './lib/date.js'
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
/**
|
||||
* {}
|
||||
* @author yutent<yutent.io@gmail.com>
|
||||
* @date 2024/03/28 18:48:08
|
||||
*/
|
||||
|
||||
if (!Map.groupBy) {
|
||||
Object.defineProperty(Map, 'groupBy', {
|
||||
value: function (arr, fn) {
|
||||
return arr.groupToMap(fn)
|
||||
}
|
||||
})
|
||||
}
|
|
@ -21,6 +21,25 @@ if (!Object.empty) {
|
|||
})
|
||||
}
|
||||
|
||||
if (!Object.groupBy) {
|
||||
Object.defineProperty(Object, 'groupBy', {
|
||||
value: function (arr, fn) {
|
||||
return arr.group(fn)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (!Object.hasOwn) {
|
||||
Object.defineProperty(Object, 'hasOwn', {
|
||||
value: function (obj, key) {
|
||||
if (obj === null) {
|
||||
return false
|
||||
}
|
||||
return obj.hasOwnProperty(key)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 将对象转为url参数字符串
|
||||
* 注意: 这里不会处理复杂类型, 直接按toString结果拼接
|
||||
|
|
Loading…
Reference in New Issue