Javascriptben egy tömbnél meg tudom-e csinálni azt, hogy a reduce tagfüggvénynél boolean értékeket vonok össze?
Az a baj, hogy pl. a false+true illetve a false&true eredménye is 0 lesz (gondolom az integral promotion miatt), és nem false.
Így próbáltam:
([...Array(p_number+1).keys()].slice(2).reduce((acc, elem) => (p_number % elem == 0) ? !!(acc&true) : !!(acc&false),false));
Megoldottam, ez lett az eredmény. Prímkereső 1 utasításban:
const isprime = (p_number) => {
return (p_number < 2) ? false :
(p_number == 2) ? true :
([...Array(p_number).keys()].slice(2).reduce(
(acc, elem) => (p_number % elem == 0) ? false : acc ,true));
};





1) == helyett ===, hogy elkerült az implicit típuskonverziókat
2) !!(bármi) mindig true/false-t fog visszaadni
3) Boolean(bármi) szintén true/false-t fog visszaadni
4) false+true nem 0, a boolean minden c nyelvben integrális típus, a true 1, így az egész értéke 1
5) & egy bitwise operator, aminek az eredménye szám lesz.. logikai értékeket logikai operátorokkal hasonlítunk össze (&&). true & false -> 0 míg true && false -> false
6) ez egy sor, nem egy utasítás
7) szoftverfejlesztésben nem az a cél, hogy minél olvashatatlanabb, lassú, lomha onelinereket írjunk, épp ellenkezőleg
8) két ternary operator egymásban már nehezen olvasható, kerülendő
8) ha tanulás a cél, akkor keresd meg a megoldásod határár. mi az a szám, amire már nagyon lassan mondja meg, hogy prím-e? gyorsítsd fel valahogy, pl memoization-nel
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!