我是node.js的新手(比如,这是第二天)。我编写了一个脚本,它读取包含用户列表的JSON文件,解析它们,然后将每个用户添加到由usedrname键入的字典中。由于我是新人,我想知道是否有比我提出的更优雅或现成的解决方案。
假设我正在阅读一个名为/users.json
的文件,其中包含:
{
"user1": {
"first": "Tom",
"last": "Hanks",
"job-description": "Movie star"
},
"user2": {
"first": "Dick",
"last": "Trickle",
"job-description": "Bar mitzvah entertainer"
},
"user3": {
"first": "Harry",
"last": "Houdini",
"job-description": "Escapologist"
}
}
我创建用户词典的代码如下所示:
const fs = require('fs')
var users = fs.readFile(__dirname + '/users.json', 'utf8', (err, users) => {
users = JSON.parse(users)
var userDictionary = toDictionary(users)
console.log('user dictionary', JSON.stringify(userDictionary, null, 4))
}
function toDictionary(objects)
var dict = {}
Object.keys(objects).forEach((key, object) => {
if (objects.hasOwnProperty(key)) {
dict[key] = objects[key] // copy whole element to dictionary
}
})
return dict
}
这会在控制台上生成以下内容:
user dictionary {
"user1": {
"first": "Tom",
"last": "Hanks",
"job-description": "Movie star"
},
"user2": {
"first": "Dick",
"last": "Trickle",
"job-description": "Bar mitzvah entertainer"
},
"user3": {
"first": "Harry",
"last": "Houdini",
"job-description": "Escapologist"
}
}
就像我说的,我的代码产生了我想要的结果,但这是实现它们的最佳方法吗?提前谢谢!
答案 0 :(得分:1)
你在这里做了重复的工作,users
对象已经一个以username
为关键词的字典!