10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-12-27 06:43:47 +01:00
QUESTDB_website/js/ArrayExtensions.js

37 lines
816 B
JavaScript
Raw Normal View History

if (!Array.prototype.findAsync) {
Array.prototype.findAsync = async function (asyncCallback) {
for (const item of this) {
if (await asyncCallback(item)) {
return item
}
}
}
if (!Array.prototype.findAllIndexes) {
Array.prototype.findAllIndexes = function (Callback) {
return this.reduce(function(a, e, i) {
if (Callback(e))
a.push(i)
return a
}, [])
}
}
if (!Array.prototype.count) {
Array.prototype.count = function (o) {
var callback
var item
if (typeof o==="function") {
callback=o
}
else {
callback=(e)=>item==e
}
return this.reduce(function(c, e, i) {
if (callback) {
if (callback(e))
c++
return c
}
},0)
}
}
}