Už nějakou dobu jsem zkoušel používat ChatGPT k tomu aby mi uspořádal pole s knihami. Ovšem nějak se nedařilo, bylo to dost neefektivní.
První pole obsahuje seznam knih, správně seřazený (pole s klíči). Druhý seznam je datový, který obsahuje více informací a bohužel není seřazený podle názvu knih.
Chtěl jsem tedy po chatGPT aby načetl nejprve ten první soubor s klíči a podle toho pole pak seřadil to datové pole. Nejprve mi navrhl funkci, kde pole nebo soubor se načítá uvnitř. Taky byl problém, ten se nepovedlo vyřešit, že když klíč v datovém souboru či poli neexistoval, nevypsal se název pole. A to nešlo za nic na světě realizovat.
Tak jsem napsal samostatný kód, který nejprve porovná ty klíče, zda se nachází v datovém souboru nebo ne. Taky jsem se učil jak vlastně dostat celé pole do funkce, tak jsem to navrhl takto, že se soubor s klíči načte před funkcí sort_books. Pak ale stále ještě byl problém s efektivitou, že se snad 26 knih dlouho třídí. Asi 2.5s na mém AMD FX 8300 je dost dlouhá doba.
Asi není úplně ideální spouštět ten jq 26x ve smyčce a navíc se tam 26x načítá pole pomocí map. Máte někdo nějaký nápad jak to ještě urychlit a dostat ten čas například na 0.26 nebo 0.026 s?
PS:ChatGPT stále nechápe syntaxi jq... a vyvozuje nesprávné závěry.
Syntaxe datového souboru.json
{ "books": [{ "english_title": "nejaka kniha", "czech_title": "ceskynazev", "category": "beletrie", "chapter_count": 14 }, ...]}
Syntaxe klíčů:
[
{"132153": {"no": 1, "title": "Nejaka kniha"}},
{"456832": {"no": 2, "title": "Dalsi kniha"}},
...
]