2017-07-27 29 views
0

我是新來的node.js(比如,這是第二天)。我編寫了一個腳本,它讀取包含用戶列表的JSON文件,解析它們,然後將每個用戶添加到由usedrname鍵入的字典中。由於我很新,所以我想知道是否有比我提出的更優雅或現成的解決方案。將對象列表添加到帶有node.js的字典中的通用方法

想我讀了一個名爲/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" 
    } 
} 

就像我說的,我的代碼產生我想要的結果b這是實現它們的最佳方式嗎?提前致謝!

回答

0

你正在這裏做重複的工作,users的對象是已經一個字典與username作爲關鍵!

+0

這就是我需要的那種反饋,謝謝! – Moebius

相關問題