如何解析Node.js中的数组?

时间:2011-04-05 21:28:11

标签: javascript node.js

解析的最佳方法是什么:

[ 'Tue, 5 Apr 2011 15:15:59 +0100' ]
[ 'email@email.org' ]
[ 'User Name <admin@email.com>' ]
[ 'oi' ]

拿出['']出来?

由于

更多详情:

这是IMAP电子邮件的负责人。

msg.headers.date

返回数据等

我想要的是:

"Tue, 5 Apr 2011 15:15:59 +0100"
"email@email.org"
"User Name"
"admin@email.com"
"oi"

2 个答案:

答案 0 :(得分:3)

所以你说console.log(msg.headers.date)给你[ 'Tue, 5 Apr 2011 15:15:59 +0100' ] ??

在这种情况下,console.log(msg.headers.date[0]) == Tue, 5 Apr 2011 15:15:59 +0100

这是你想要得到的吗?


这是什么?一份文件?直文?更大的JSON结构的一部分?

基本上,将其转换为实际结构并以某种方式加载它:

module.exports = [
   [ 'Tue, 5 Apr 2011 15:15:59 +0100' ],
   [ 'email@email.org' ],
   [ 'User Name <admin@email.com>' ],
   [ 'oi' ]
];

----

var info = require('./file');
// info[0][0] == Tue, 5 Apr 2011 15:15:59 +0100

或者如果你想解析它:

var lines = [
   "[ 'Tue, 5 Apr 2011 15:15:59 +0100' ]",
   "[ 'email@email.org' ]",
   "[ 'User Name <admin@email.com>' ]",
   "[ 'oi' ]"
];

var info = JSON.parse('[' + lines.join(',') + ']');
// info[0][0] == Tue, 5 Apr 2011 15:15:59 +0100

<击>

答案 1 :(得分:1)

假设每一行都是数组lines中的一个元素:

var lines = [
    "[ 'Tue, 5 Apr 2011 15:15:59 +0100' ]",
    "[ 'email@email.org' ]",
    "[ 'User Name <admin@email.com>' ]",
    "[ 'oi' ]"
];

for(var i=0;i<lines.length;i++){
    lines[i]=lines[i].replace(/^\[ *'|' *\]$/g,'');
}

console.log(JSON.stringify(lines));