我正在尝试使用nodejs迭代一个json对象,结果证明这是一个真正的挑战。
> var fs = require('fs');
> var meta = JSON.parse(fs.readFileSync('path_to_file'));
> typeof meta
'object'
> for ( k in meta) console.log(k);
key1
key2
> meta.map(function(v,k) { console.log(k +'=' + v); })
TypeError: Object #<Object> has no method 'map'
at repl:1:7
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.EventEmitter.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
>
我是节点的新手,这是正常的吗?
答案 0 :(得分:1)
map
用于数组,您将它应用于对象。
您可以尝试underscore.js
的_.map
var _ = require('underscore');
_.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; });
=> [3, 6, 9]