Mathematica JS
by evgkch
JavaScript
const createArray = (length) => Array.from( {length: length}, (v, k) => k );
const shuffle = (array) => array.sort( (a, b) => Math.random() - 0.5 );
function Pi (precision = 5) {
if (precision === 0) {
return 3;
} else {
let pow = Math.pow(10, precision)
return Math.round(Math.PI * pow) / pow
}
}
function pow (num) {
let numExpand = num.toString().split('').length;
return (numExpand > 1) ? Math.pow(10, numExpand - 2) : 1
}
function Range (...args) {
switch (args.length) {
case 1:
return Array.from( {length: args[0] + 1}, (v, k) => k );
case 2:
return Array.from( {length: args[1] - args[0] + 1}, (v, k) => args[0] + k );
case 3:
let precision = pow(args[2]);
return Array.from( {length: (args[1] - args[0]) / args[2] + 1}, (v, k) => Math.round((args[0] + args[2] * k) * precision) / precision );
default:
console.error(`------------------------------------------------------- \n Range(iMax) returns the array [1, 2, ..., iMax]; \n Range(iMin, iMax) returns the array [iMin, ..., iMax]; \n Range(iMin, iMax, di) uses step di.`)
break;
}
}
//Array.from( {length: (step + iMax - iMin) / step}, (v, k) => iMin + step * k );
console.log(Pi())
console.log(Range(10))
console.log(Range(10,20))
console.log(Range(0, 10, Pi(3)))