Aggiungere / modificare proprietà a un oggetto e restituirlo nella stessa riga è un possibile caso d'uso:
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)
);
La funzione anonima sopra restituisce un oggetto con valori casuali più grandi del valore di input o, se non ce n'è nessuno, con il valore di input stesso in un array contenuto nella bigger
proprietà.
È ancora zucchero sintattico (come le funzioni delle frecce ), ma abbrevia il numero di righe ... Mi chiedo se alcuni minificatori JS rilevano e regolano il codice in modo simile automaticamente. Eseguilo nella tua console:
((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)