增加Obejct.groupBy和Map.groupBy

master
yutent 2024-03-28 18:50:40 +08:00
parent 0afc54671b
commit be25f2dd4b
5 changed files with 40 additions and 2 deletions

View File

@ -8,9 +8,14 @@
```js ```js
├── Obejct ├── Obejct
│ └── .empty(any) // 判断对象是否为空对象 │ └── .empty(any) // 判断对象是否为空对象
│ └── .groupBy(arr, fn) // 数组分组, 返回分组后的对象
│ └── .hasOwn(any, key) // 安全版的 Object.prototype.hasOwnProperty()
├── Obejct.prototype ├── Obejct.prototype
│ └── .toParams() // 把对象转为 key1=value1&key2=value2 格式 │ └── .toParams() // 把对象转为 key1=value1&key2=value2 格式
├── Map
│ └── .groupBy(any) // 数组分组, 返回分组后的对象
├── Array.prototype ├── Array.prototype
│ ├── .flat(depth) // 数组降维 │ ├── .flat(depth) // 数组降维
│ ├── .flatMap(fn) // 等价于 map(fn) -> flat(1) │ ├── .flatMap(fn) // 等价于 map(fn) -> flat(1)

View File

@ -1,6 +1,6 @@
{ {
"name": "es.shim", "name": "es.shim",
"version": "2.2.1", "version": "2.2.2",
"description": "实现部分新API, 以及一些常用的扩展方法", "description": "实现部分新API, 以及一些常用的扩展方法",
"keyworks": [ "keyworks": [
"es5", "es5",

View File

@ -4,8 +4,9 @@
* @date 2022/01/27 15:33:09 * @date 2022/01/27 15:33:09
*/ */
import './lib/object.js'
import './lib/array.js' import './lib/array.js'
import './lib/object.js'
import './lib/map.js'
import './lib/string.js' import './lib/string.js'
import './lib/number.js' import './lib/number.js'
import './lib/date.js' import './lib/date.js'

13
src/lib/map.js Normal file
View File

@ -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)
}
})
}

View File

@ -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参数字符串 * 将对象转为url参数字符串
* 注意: 这里不会处理复杂类型, 直接按toString结果拼接 * 注意: 这里不会处理复杂类型, 直接按toString结果拼接