Egy olyan cégnél dolgozol, amely egy Lexiconia nevű online többjátékos játékot készít.
A játékhoz minden játékos 13 betűt kap, amelyeket szavak alkotásához kell átrendeznie. A különböző betűknek különböző pontértékük van, mivel bizonyos betűkkel könnyebb szavakat alkotni, mint másokkal.
A játék eredetileg angolul indult, de nagyon népszerű, és a cég most más nyelvekre is szeretne terjeszkedni.
A különböző nyelveknek különböző pontértékeket kell támogatniuk a betűknél. A pontértékeket az határozza meg, hogy az adott nyelvben milyen gyakran használják a betűket a többi betűhöz képest.
Például a „C” betű meglehetősen gyakori az angolban, és csak 3 pontot ér. De a norvégban ez egy nagyon ritka betű, és 10 pontot ér.
Hogy könnyebb legyen új nyelveket hozzáadni, a csapatodnak meg kell változtatnia, hogyan tárolják a betűket és a pontértékeiket a játékban.
A feladatod, hogy megváltoztasd a játékban a betűk és a pontértékeik adatformátumát.
Jelenleg a betűk a pontszámuk alapján csoportosítva vannak tárolva, egy-több hozzárendelésben.
Ezt úgy kell átalakítani, hogy minden egyes betű a saját pontszámával együtt, egy-egy hozzárendelésben legyen tárolva.
A változtatás részeként a csapat úgy is döntött, hogy a betűk ezután nagybetű helyett kisbetűvel szerepelnek.
Ha szeretnéd megnézni, hogyan volt korábban strukturálva az adat, és hogyan kell megváltoztatni, vess egy pillantást a tesztekben szereplő példákra.
jq tippekEz a feladat arról szól, hogy fogunk egy bemeneti objektumot, és átalakítjuk egy új objektummá. Íme néhány beépített függvény, ami segíthet:
to_entries
{"key": "K", "value": V} objektum
K a bemeneti objektum egyik kulcsaV a K-hoz tartozó érték.from_entries
{"key": K, "value": V} objektumok tömbjét kapja, és egy objektumot épít belőlükEgy példa:
jq -n '
{
"username": "glennj",
"tracks": ["bash", "awk", "jq"],
"reputation": 123
}
| to_entries
'
az alábbi kimenetet adja:
[
{
"key": "username",
"value": "glennj"
},
{
"key": "tracks",
"value": ["bash", "awk", "jq"]
},
{
"key": "reputation",
"value": 123
}
]
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) jq nyelvet 12 fogalom75 feladat segítségével, valódi emberi mentorálással, mindez ingyen.