更新文档

master 2.1.0
yutent 2022-01-27 15:41:47 +08:00
parent 5cb13f5d7d
commit 1dfd6baf72
8 changed files with 78 additions and 59 deletions

View File

@ -1,3 +1,13 @@
2.1.0 / 2022-01-27
==================
* Array.prototype.item 更名为 Array.prototype.at
* String.prototype.item 更名为 String.prototype.at
* Array 增加findLast()和findLastIndex()原型方法
* Object 增加toParams()原型方法
* String 增加toJson()原型方法
* 重写Array的flat, flatMap原型方法, 性能提升5~10倍(视数据结构而定)
* 使用EsBuild打包代码
2.0.0 / 2020-09-18 2.0.0 / 2020-09-18
================== ==================
* 重构, 分cjs版和esm版。 * 重构, 分cjs版和esm版。

View File

@ -6,39 +6,39 @@
```js ```js
├── Obejct ├── Obejct
│ └── empty(any) // 判断对象是否为空对象 │ └── .empty(any) // 判断对象是否为空对象
├── Obejct.prototype ├── Obejct.prototype
│ └── toParams() // 把对象转为 key1=value1&key2=value2 格式 │ └── .toParams() // 把对象转为 key1=value1&key2=value2 格式
├── Array.prototype ├── Array.prototype
│ ├── flat(depth) // 数组降维 │ ├── .flat(depth) // 数组降维
│ ├── flatMap(fn) // 等价于 map(fn) -> flat(1) │ ├── .flatMap(fn) // 等价于 map(fn) -> flat(1)
│ ├── at(index) // 读取指定位置的元素, 负值则从后往前读 │ ├── .at(index) // 读取指定位置的元素, 负值则从后往前读
│ ├── findLast(fn) // 查找匹配的最后一项 │ ├── .findLast(fn) // 查找匹配的最后一项
│ └── findLastIndex(fn) // 查找匹配的最后一项的索引值 │ └── .findLastIndex(fn) // 查找匹配的最后一项的索引值
├── Date ├── Date
│ └── isDate(any) // 判断对象是否为 日期对象 │ └── .isDate(any) // 判断对象是否为 日期对象
├── Date.prototype ├── Date.prototype
│ ├── getWeek() // 获取当前是本月第几周 │ ├── .getWeek() // 获取当前是本月第几周
│ ├── getFullWeek() // 获取当前是本年度第几周 │ ├── .getFullWeek() // 获取当前是本年度第几周
│ └── format(formatStr) // 把日期按指定格式转换 │ └── .format(formatStr) // 把日期按指定格式转换
├── String.prototype ├── String.prototype
│ ├── splice(index, len, pad) // 类似数组的splice方法 │ ├── .splice(index, len, pad) // 类似数组的splice方法
│ ├── htmlspecialchars() // 字符串HTML安全转义 │ ├── .htmlspecialchars() // 字符串HTML安全转义
│ ├── tohtml() // htmlspecialchars的还原 │ ├── .tohtml() // htmlspecialchars的还原
│ ├── xss() // 字符串安全转义 │ ├── .xss() // 字符串安全转义
│ ├── escape() // js特殊字符的转义 │ ├── .escape() // js特殊字符的转义
│ ├── at() // 读取指定位置的字符, 负值则从后往前读 │ ├── .at(index) // 读取指定位置的字符, 负值则从后往前读
│ └── toJson() // 将url参数转为对象 │ └── .toJson() // 将url参数转为对象
├── Number ├── Number
│ ├── parse(str) // 将安全范围内的数字字符串转为数字类型 │ ├── .parse(str) // 将安全范围内的数字字符串转为数字类型
│ └── fromString(str) // 将字符串转为数字类型 │ └── .fromString(str) // 将字符串转为数字类型
└── Promise └── Promise
└── defer() // 创建一个延迟的Promise对象 └── .defer() // 创建一个延迟的Promise对象
``` ```

View File

@ -1,8 +1,7 @@
/** /**
* *
* @authors yutent (yutent@doui.cc) * @author yutent<yutent.io@gmail.com>
* @date 2017-02-27 18:01:54 * @date 2022/01/27 15:33:09
*
*/ */
import './lib/object.js' import './lib/object.js'

View File

@ -18,7 +18,6 @@ Object.defineProperty(Array.prototype, 'flat', {
return arr return arr
}, },
enumerable: false,
writable: true writable: true
}) })
@ -26,7 +25,6 @@ Object.defineProperty(Array.prototype, 'flatMap', {
value: function(fn) { value: function(fn) {
return this.map(fn).flat() return this.map(fn).flat()
}, },
enumerable: false,
writable: true writable: true
}) })
@ -39,7 +37,36 @@ if (!Array.prototype.at) {
} }
return this[n] return this[n]
}, },
enumerable: false, writable: true
})
}
if (!Array.prototype.findLast) {
Object.defineProperty(Array.prototype, 'findLast', {
value: function(fn) {
let num = this.length
while (num > 0) {
let item = this[--num]
if (fn(item, num)) {
return item
}
}
},
writable: true
})
// 没有findLast也不会有findLastIndex
Object.defineProperty(Array.prototype, 'findLastIndex', {
value: function(fn) {
let num = this.length
while (num > 0) {
let item = this[--num]
if (fn(item, num)) {
return num
}
}
return -1
},
writable: true writable: true
}) })
} }

View File

@ -9,7 +9,7 @@ if (!Date.isDate) {
value: function(obj) { value: function(obj) {
return obj && typeof obj === 'object' && obj.getTime ? true : false return obj && typeof obj === 'object' && obj.getTime ? true : false
}, },
enumerable: false writable: true
}) })
} }
@ -22,8 +22,7 @@ if (!Date.prototype.getFullWeek) {
let firstDay = that.getDay() let firstDay = that.getDay()
let numsOfToday = (this - that) / 24 / 360 / 1000 let numsOfToday = (this - that) / 24 / 360 / 1000
return Math.ceil((numsOfToday + firstDay) / 7) return Math.ceil((numsOfToday + firstDay) / 7)
}, }
enumerable: false
}) })
//获取当天是本月第几周 //获取当天是本月第几周
@ -34,8 +33,7 @@ if (!Date.prototype.getFullWeek) {
let thisYear = this.getFullYear() let thisYear = this.getFullYear()
let firstDay = new Date(thisYear, thisMonth, 1).getDay() let firstDay = new Date(thisYear, thisMonth, 1).getDay()
return Math.ceil((today + firstDay) / 7) return Math.ceil((today + firstDay) / 7)
}, }
enumerable: false
}) })
} }
@ -82,7 +80,6 @@ if (!Date.prototype.format) {
str = str.replace(new RegExp(i, 'g'), reg[i]) str = str.replace(new RegExp(i, 'g'), reg[i])
} }
return str return str
}, }
enumerable: false
}) })
} }

View File

@ -19,10 +19,7 @@ if (!Number.parse) {
} }
} else { } else {
if (isFinite(val)) { if (isFinite(val)) {
if ( if (val >= Number.MIN_SAFE_INTEGER && val <= Number.MAX_SAFE_INTEGER) {
val >= Number.MIN_SAFE_INTEGER &&
val <= Number.MAX_SAFE_INTEGER
) {
val = +val val = +val
} }
} }
@ -30,8 +27,7 @@ if (!Number.parse) {
} }
} }
return val return val
}, }
enumerable: false
}) })
} }
@ -40,7 +36,6 @@ if (!Number.fromString) {
Object.defineProperty(Number, 'fromString', { Object.defineProperty(Number, 'fromString', {
value: function(val) { value: function(val) {
return +val || 0 return +val || 0
}, }
enumerable: false
}) })
} }

View File

@ -17,8 +17,7 @@ if (!Object.empty) {
} }
} catch (e) {} } catch (e) {}
return true return true
}, }
enumerable: false
}) })
} }
@ -34,7 +33,6 @@ if (!Object.prototype.toParams) {
params += `&${k}=${this[k]}` params += `&${k}=${this[k]}`
} }
return params.slice(1) return params.slice(1)
}, }
enumerable: false
}) })
} }

View File

@ -35,8 +35,7 @@ if (!String.prototype.splice) {
return strl + fill + strr return strl + fill + strr
} }
}, }
enumerable: false
}) })
} }
@ -55,8 +54,7 @@ if (!String.prototype.htmlspecialchars) {
} else { } else {
return str.replace(/"/g, '&quot;') return str.replace(/"/g, '&quot;')
} }
}, }
enumerable: false
}) })
} }
@ -69,8 +67,7 @@ if (!String.prototype.tohtml) {
.replace(/&quot;/gi, '"') .replace(/&quot;/gi, '"')
.replace(/&#39;/g, "'") .replace(/&#39;/g, "'")
.replace(/&amp;/gi, '&') .replace(/&amp;/gi, '&')
}, }
enumerable: false
}) })
} }
@ -86,8 +83,7 @@ if (!String.prototype.xss) {
) )
.replace(/(%0[0-8bcef])|(%1[0-9a-f])/g, '') .replace(/(%0[0-8bcef])|(%1[0-9a-f])/g, '')
return str return str
}, }
enumerable: false
}) })
} }
@ -96,8 +92,7 @@ if (!String.prototype.escape) {
Object.defineProperty(String.prototype, 'escape', { Object.defineProperty(String.prototype, 'escape', {
value: function() { value: function() {
return this.replace(/('|"|&|\\|\}|\{|\(|\)|;|=|\,|&)/g, '\\$1') return this.replace(/('|"|&|\\|\}|\{|\(|\)|;|=|\,|&)/g, '\\$1')
}, }
enumerable: false
}) })
} }
@ -110,7 +105,6 @@ if (!String.prototype.at) {
} }
return this[n] return this[n]
}, },
enumerable: false,
writable: true writable: true
}) })
} }
@ -132,7 +126,6 @@ if (!String.prototype.toJson) {
obj[it[0]] = it[1] || '' obj[it[0]] = it[1] || ''
} }
return obj return obj
}, }
enumerable: false
}) })
} }