var dx = relativeX-posx*4.7;
var posy = -Math.cos(dx/50)*50*(5/Math.sqrt(2*Math.PI))*Math.pow(Math.E,-Math.pow(dx/150,2));
<span class="line" style="transform: translateY(0px);"></span>transform: translateY(0px);translateY(...) у части span-ов.
Array.map(cb) - итеративный метод массивов, где функция cb получает параметры (текущий элемент массива, его индекс, и др.)(n, i) => { ... } - стрелочная функция, (почти аналог записи function(n,i){ ... } )n === b[i] ? n : '?' - Условный (тернарный) оператор, в данном случае аналогичен записи:if( n === b[i] ){
return n;
}else{
return '?';
}
// функция вычисляющая маску
function getMask(startvalue, stopvalue){
const arr = startvalue.split('');
return stopvalue
.split('')
.map((n,i)=>{
if( n!= arr[i] ) return "d";
return n;
})
.join('');
}
// получение маски
let mask = getMask('2200520300000000000', '2200520300999999999');
console.log(mask) // 2200520300dddddddddString.split('это regexp')