PolyFull - 增强 js 功能
JavaScript 是一门非常不错的语言(至少对某些人来说是这样😂),但它仍然缺少一些核心功能……
您想知道这门语言缺少哪些功能吗?嗯,现在从数组中删除一个元素的代码是这样的:
someArray.splice(someArray.indexOf(elementYouWantToRemove), 1)
如果必须删除该元素的每一个实例,情况会更糟:
for (let i = 0; i < someArray.length; i++) {
if (elementYouWantToRemove === someArray[i]) {
someArray.splice(i, 1)
i--
}
}
不明白为什么 JavaScript 没有这么基本的功能,如果能实现类似这样的功能就太好了:
someArray.remove(someElement)
我有个好消息要告诉你!🔥
通过polyfull,这项功能以及许多其他功能都可以直接集成到语言中。
要解锁这些功能,只需将其导入到项目的索引中即可:
import 'polyfull'
⚠️ 仅供最终应用使用。
如果你在库中使用此插件,其他使用该库的应用程序也会被
polyfull注入此插件。
请不要在构建库时使用此插件,仅在你能控制 Node 解释器的情况下使用。
此外,如果你使用了其他 polyfill,请确保它们之间没有冲突,否则会导致问题。谢谢!
您可以使用很多功能,以下是一个示例:
import 'polyfull'
// ArrayConstructor
Array.zip([1, 2, 3], ['a', 'b', 'c']) // => [[1, 'a'], [2, 'b'], [3, 'c']]
Array.collapse([1], [2, 3], [4, 5, 6]) // => [1, 2, 3, 4, 5, 6]
Array.intersect([1, 2, 3], [2, 3, 4]) // => [2, 3]
Array.unique([1, 2], [2, 3], [3, 4]) // [1, 2, 3, 4]
// Array
[1, 2, 3].remove(2) // => [1, 3]
[1, 2, 3].removeIndex(2) // => [1, 2]
[1, 2, 3].first() // => 1
[1, 2, 3].last() // => 3
// DateConstructor
Date.current() // => new Date(Date.now())
// Date
new Date(0).addHours(1) // => 1970-01-01T01:00:00.000Z
new Date(0).isBefore(new Date(Date.now())) // => true
new Date(0).isAfter(new Date(Date.now())) // => false
new Date(0).diff(new Date()) // => how many ms passed from 1970? :D
// NumberConstructor
Number.random() // => -789.0123
Number.random(0) // => 789.0123
Number.random(0, 100) // => 89.0123
Number.randomInt(0) // => 42
// Number
7.0.isPrime() // => true
3.0.pow(2) // => 6
40.0.goldenRation() // => [24.72~, 15.28~]
50.0.percentage(20) // => 10
// Promise
await Promise.allProperties({
a: Promise.resolve(1),
b: Promise.resolve(2),
}) // => { a: 1, b: 2 }
await Promise.allPropertiesSettled({
a: Promise.resolve(1),
b: Promise.reject(2)
}) // => {
// a: { status: 'fulfilled', value: 1 },
// b: { status: 'rejected', reason: 2 }
// }
// String
'hello'.reverse() // => "olleh"
'racecar'.isPalindrome() // => true
'0x01'.isNumeric() // => true
'polyfull'.equalsIgnoreCase('POLYFULL') // => true
// And Many Many Others!!
喜欢的话记得点赞哦⭐!
https://github.com/GiovanniCardamone/polyfull
文章来源:https://dev.to/giovannicardamone/polyfull-enhance-js-functionities-3bo