Skip to content

Instantly share code, notes, and snippets.

/*
* see: [https://stackoverflow.com/questions/66303388/how-to-most-efficiently-splice-an-array-while-looping-through-a-list-of-indices/66304184#66304184]
*
* StackOverflow :: How to most efficiently splice an array
* while looping through a list of indices
* of to be removed array items?
*/
function createRemoveScheme(indexList, targetList) {
return Array
@petsel
petsel / localeCompare.defaultCompare.js
Created February 15, 2021 17:16
provides a `localeCompare` based compare function which can be used like `[/* ... */].sort(localeCompare)`
function defaultCompare(a, b) {
return ((a < b) && -1) || ((a > b) && 1) || 0;
}
// function localeCompare(a, b) {
// return a.localeCompare
// ? a.localeCompare(b)
// : defaultCompare(a, b);
// }
// - supports additional `…[, locales[, options]` argument binding
/**
* `Boolean.isTrue` / `Boolean.isFalse` is a fun implementation of Smalltalk's [https://en.wikipedia.org/wiki/Smalltalk]
* `ifTrue` / `ifFalse` control structures [https://en.wikipedia.org/wiki/Smalltalk#Control_structures].
*
* It is nothing one would really desire in JavaScript unless one is looking for an alternative to its native `if...else`
* statement and has deeply fallen in love with using function expressions all along.
*
* EN: [https://en.wikipedia.org/wiki/Smalltalk#Control_structures]
* DE: [https://de.wikipedia.org/wiki/Smalltalk_(Programmiersprache)#IF-Anweisung]
*/
// see: "Compose in JavaScript, not applying functions correctly?" asked by Dan Mantyla - Nov 10, 2014
// answer: [https://stackoverflow.com/questions/26835095/compose-in-javascript-not-applying-functions-correctly/28880612#28880612]
(function (Function, Object) {
const fctPrototype = Function.prototype;
const FUNCTION_TYPE = (typeof Function);
function isFunction(type) {
return (
@petsel
petsel / Function.afterThrowing.js
Created September 2, 2020 01:57
implementation of a possible static `Function.afterThrowingAll` which does run a list of whatever functions failsafe
// see [https://gist.github.com/petsel/9ddf5ce515f1344c84bd#file-function-afterthrowing-js]
(function (Function) {
const fctPrototype = Function.prototype;
const FUNCTION_TYPE = (typeof Function);
function isFunction(type) {
return (
(typeof type == FUNCTION_TYPE)
@petsel
petsel / Function.afterFinally.js
Created September 2, 2020 01:41
implementation of a possible static `Function.afterFinallyAll` which does run a list of whatever functions failsafe
// see [https://gist.github.com/petsel/3b31cd5e63d43b9e7c4e#file-function-afterfinally-js]
(function (Function) {
const fctPrototype = Function.prototype;
const FUNCTION_TYPE = (typeof Function);
function isFunction(type) {
return (
(typeof type == FUNCTION_TYPE)
function isBooleanValue(type) {
return (typeof type === 'boolean');
}
function isNumberValue(type) {
return (typeof type === 'number');
}
function isStringValue(type) {
return (typeof type === 'string');
}
// example-of-function-based-mixin-composition-with-class-and-shared-local-state.js
function withExposableSharedLocalState (state) {
state = ((typeof state === "object") && state) || (void 0);
var json_stringify = JSON.stringify;
var json_parse = JSON.parse;
var compositeType = this;
// file "Object.getMaxDepth.js"
const Object = global.Object;
const object_prototype_toString = Object.prototype.toString;
const object_keys = Object.keys;
const math_max = global.Math.max;
const isArray = global.Array.isArray;
(function (global) {
'use strict';
var
Array = global.Array,
Object = global.Object,
RegExp = global.RegExp,
Function = global.Function,