Dodanie / modyfikacja właściwości do obiektu i zwrócenie go w tym samym wierszu to możliwy przypadek użycia:
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)
);
Powyższa funkcja anonimowa zwraca obiekt z losowymi wartościami większymi niż wartość wejściowa lub, jeśli ich nie ma, z samą wartością wejściową w tablicy zawartej we bigger
właściwości.
Wciąż jest to cukier syntaktyczny (podobnie jak funkcje strzałkowe ), ale skraca liczbę linii ... Zastanawiam się, czy niektóre minifierki JS automatycznie wykrywają i dostosowują kod w podobny sposób. Uruchom go w konsoli:
((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)