Возможным вариантом использования является добавление / изменение свойств объекта и возврат его в той же строке :
console.log(
((x) => (o = {biggerCond: r => r >= x},
o.r5 = Array.from(window.crypto.getRandomValues(new Uint16Array(5))),
o.isAnyBigger = o.r5.some(o.biggerCond),
o.bigger = o.isAnyBigger ? o.r5.filter(o.biggerCond) : [x], o )
)(5e4)
);
Вышеупомянутая анонимная функция возвращает объект со случайными значениями, превышающими входное значение, или, если их нет, с самим входным значением в массиве, содержащемся в bigger
свойстве.
Это все еще синтаксический сахар (например, функции стрелок ), но он сокращает количество строк ... Интересно, обнаруживают ли некоторые минификаторы JS и автоматически корректируют код аналогичным образом. Запустите его в консоли:
((x)=>(o={biggerCond:r=>r>=x},o.r5=Array.from(window.crypto.getRandomValues(new Uint16Array(5))),o.isAnyBigger=o.r5.some(o.biggerCond),o.bigger=o.isAnyBigger?o.r5.filter(o.biggerCond):[x],o))(5e4)