你在一家公司工作,这家公司开发了一款名为 Lexiconia 的在线多人游戏。
要玩这个游戏,每位玩家会拿到 13 个字母,需要把它们重新排列成单词。不同字母的分值不同,因为用有些字母组词比其他字母更容易。
游戏最初以英文推出,但非常受欢迎,现在公司想把它扩展到其他语言。
不同语言需要为字母设置不同的分值。分值取决于该语言中字母的使用频率与其他字母相比的高低。
例如,字母“C”在英文中相当常见,只值 3 分。但在挪威语中它非常罕见,值 10 分。
为了方便添加新语言,你的团队需要改变游戏中字母及其分值的存储方式。
你的任务是改变游戏中字母及其分值的数据格式。
目前,字母按得分分组存储,是一种一对多的映射关系。
现在需要改成把每个字母和它的得分单独存储,形成一对一的映射关系。
作为这次改动的一部分,团队还决定把字母改成小写,不再使用大写。
如果你想了解数据之前是如何组织的,以及它需要怎样改变,可以看看测试套件中的示例。
jq技巧这道练习要做的是接收一个输入对象,再把它转换成一个新的对象。 下面这几个内置函数可能会帮上忙:
to_entries
{"key": "K", "value": V}
K都是输入对象中的一个键V都是K对应的值。from_entries
{"key": K, "value": V}对象组成的数组,构造出一个对象举个例子:
jq -n '
{
"username": "glennj",
"tracks": ["bash", "awk", "jq"],
"reputation": 123
}
| to_entries
'
输出为
[
{
"key": "username",
"value": "glennj"
},
{
"key": "tracks",
"value": ["bash", "awk", "jq"]
},
{
"key": "reputation",
"value": 123
}
]