Ugrás a tartalomra

Arcade pontszámok - tömb metódusok

webprogramming language-features arrays unit-test

Ebben a feladatban egy játéktermi rendszer pontszámait kell feldolgozni. Mivel a pontszámok szöveges beviteli mezőből származnak, a bemeneti tömb különböző típusú értékeket tartalmazhat, például számokat, numerikus karakterláncokat, logikai értékeket, null, undefined és NaN értékeket. Egy pontszám akkor tekinthető érvényesnek, ha a típusa number, és az értéke nem NaN.

Valósítsd meg az alábbi függvényeket az index.js fájlban globális függvénydeklarációkként. Ne használj modulokat, import és export utasításokat.

Kapcsolódó fogalmak: a typeof operátor, szigorú egyenlőségvizsgálat, maradékképzés, hatványozás, filter, map, reduce, sort, slice, sablonliterál, spread szintaxis és objektumok.

Kezdőcsomag

A feladatleírás és a kezdőfájlok helyi munkához előkészítve.

Tartalmazott fájlok: index.js

Feladatok

isValidScore(s)

Eldönti egyetlen értékről, hogy érvényes pontszám-e.

  • Paraméter: s: tetszőleges típusú érték.
  • Visszatérési érték: true, ha s típusa number, és értéke nem NaN; egyébként false.

Példák:

isValidScore(42)

Várt visszatérési érték: true

isValidScore("42")

Várt visszatérési érték: false

cleanScores(scores)

Kiválogatja egy tömbből az érvényes pontszámokat.

  • Paraméter: scores: tetszőleges típusú értékeket tartalmazó tömb.
  • Visszatérési érték: új tömb, amely csak azokat az elemeket tartalmazza, amelyekre az isValidScore igaz értéket ad. A bemeneti tömb nem módosítható.

Példa:

cleanScores([42, "42", NaN, 17, null, 0])

Várt visszatérési érték: [42, 17, 0]

evenScores(scores)

Kiválogatja a páros pontszámokat egy számtömből.

  • Paraméter: scores: számokat tartalmazó tömb. Feltételezhető, hogy minden eleme érvényes pontszám.
  • Visszatérési érték: új tömb, amely csak a páros számokat tartalmazza.

Példa:

evenScores([2, 3, 4])

Várt visszatérési érték: [2, 4]

doubleScores(scores)

Megduplázza a tömb minden elemét.

  • Paraméter: scores: számokat tartalmazó tömb.
  • Visszatérési érték: új tömb, amelyben minden elem a megfelelő bemeneti érték kétszerese.

Példa:

doubleScores([2, 3])

Várt visszatérési érték: [4, 6]

formatScores(scores)

Megjelenítésre alkalmas alakra hozza a pontszámokat.

  • Paraméter: scores: számokat tartalmazó tömb.
  • Visszatérési érték: új tömb, amelyben minden s szám "s pts" alakú karakterlánccá van alakítva.

Példa:

formatScores([42, 7])

Várt visszatérési érték: ["42 pts", "7 pts"]

totalOddBonus(scores)

Kiszámítja a páratlan pontszámok négyzeteinek összegét.

  • Paraméter: scores: számokat tartalmazó tömb.
  • Visszatérési érték: a páratlan elemek négyzeteinek összege. Üres tömb, illetve páratlan elemet nem tartalmazó tömb esetén 0.

Példa:

totalOddBonus([1, 2, 3, 4, 5])

Várt visszatérési érték: 35, mivel 1 + 9 + 25 = 35.

combineBoards(board1, board2)

Egyesít két pontszámtáblát.

  • Paraméterek: board1 és board2: két tömb.
  • Visszatérési érték: új tömb, amely a board1 összes elemét, majd a board2 összes elemét tartalmazza ebben a sorrendben. Egyik bemeneti tömb sem módosítható.

Példa:

combineBoards([1, 2], [3, 4])

Várt visszatérési érték: [1, 2, 3, 4]

topScores(scores, n)

Visszaadja a legmagasabb n érvényes pontszámot csökkenő sorrendben.

  • Paraméterek: scores: tetszőleges típusú értékeket tartalmazó tömb; n: nemnegatív szám, amely megadja, hány legjobb pontszámot kell visszaadni.
  • Visszatérési érték: legfeljebb n elemű új tömb, amely a legnagyobb érvényes pontszámokat tartalmazza csökkenő sorrendben. Az érvénytelen értékek figyelmen kívül maradnak. Ha kevesebb mint n érvényes pontszám létezik, akkor az összeset visszaadja. Ha n értéke 0, vagy nincs érvényes pontszám, üres tömböt ad vissza. A bemeneti tömb nem módosítható.

Példa:

topScores([5, "7", 20, null, 3, 12], 2)

Várt visszatérési érték: [20, 12]

averageValidScore(scores)

Kiszámítja az érvényes pontszámok számtani közepét.

  • Paraméter: scores: tetszőleges típusú értékeket tartalmazó tömb.
  • Visszatérési érték: az érvényes pontszámok átlaga. Ha a tömb nem tartalmaz érvényes pontszámot, a visszatérési érték 0.

Példa:

averageValidScore([10, "20", 30, null])

Várt visszatérési érték: 20, mivel (10 + 30) / 2 = 20.

parityGroups(scores)

Paritás szerint csoportosítja az érvényes pontszámokat.

  • Paraméter: scores: tetszőleges típusú értékeket tartalmazó tömb.
  • Visszatérési érték: olyan objektum, amely két tulajdonsággal rendelkezik: even és odd. Mindkét tulajdonság a megfelelő érvényes pontszámokat tartalmazó tömb, az eredeti relatív sorrend megőrzésével.

Példa:

parityGroups([1, 2, "3", 4, null, 5])

Várt visszatérési érték: { even: [2, 4], odd: [1, 5] }

Követelmények

  • Minden függvényt function name(...) { ... } alakú függvénydeklarációval definiálj.
  • Ne használj import, export vagy type="module" szerkezeteket.
  • A változókat const vagy let kulcsszóval deklaráld. A var használata nem megengedett.
  • A tömböt visszaadó függvények új tömböt adjanak vissza, és ne módosítsák a bemeneti tömböket.
  • Minden összehasonlításhoz szigorú egyenlőségvizsgálatot (=== és !==) használj.