Qualcuno può spiegare lo scopo del doppio negare la reverse
var nel seguente codice?Significato [-1,1] [+ !! boolean_var]
return function (a,b) {
var A = key(a), B = key(b);
return ((A < B) ? -1 :
(A > B) ? +1 : 0)) * [-1,1][+!!reverse];
}
Il modo in cui ho capito, lo scopo è quello di scegliere l'indice corretto dalla matrice [-1,1]
poi usarlo nella moltiplicazione per, ma mi sembra che [-1,1][+!!reverse];
potrebbe essere tranquillamente sostituita da [-1,1][+reverse];
Am Ho sbagliato? Cosa guadagni o prevedi raddoppiando lo reverse
lì?
ho visto il codice di cui sopra sul this answer.
Questo è impressionante, curioso di vedere una risposta su questo –
Si modifica il valore di inverso per un valore booleano. [Qual è il !! (Non meno) operatore in JavaScript] (http://stackoverflow.com/questions/784929/what-is-the-not-not-operator-in-javascript) – Mizuho
vorrei usare '(reverse 1:?? -1) 'invece di' [-1,1] [+ !! reverse] ', IMO è solo più chiaro, è più economico, non ha bisogno di un oggetto array e accede a un indice, e anche la conversione booleana viene fatta implicitamente da l'operatore condizionale ... – CMS