我的目标是参加其中包含约400万记录的CSV文件,并处理每一条记录,同时擦洗特定字段的数据。我们实际上创建了一个可逆的哈希过程,但这是一个耗时的过程(接近1秒)。我想这样做,因为只有约50000该字段的唯一值是将它们设置为一个对象的属性。以下是如何构建对象的伪示例。你可以看到,对于重复我打算只是简单地覆盖现有值(这是为了避免通过一些如果基于搜索语句具有循环。使用重复数据删除的NodeJS
var csv = require('csv');
var http = require('http');
var CBNObj = new Object;
csv()
.fromPath(__dirname+'/report.csv',{
columns: true
})
.transform(function(data){
CBNObj[data['Field Value']] = data['Field Value'];
});
console.log(CBNObj);
这应该创建我的对象是这样的。
myObj['fieldValue1'] = 'fieldValue1'
myObj['fieldValue2'] = 'fieldValue2'
myObj['fieldValue3'] = 'fieldValue3'
myObj['fieldValue1'] = 'fieldValue1'
myObj['fieldValue1'] = 'fieldValue1'
我已经看过了一些很好的职位上这里大约每财产迭代中的对象(像这样一个Iterating over every property of an object in javascript using Prototype?),但我仍然不完全知道如何acccomplish我在做什么,我怎么能那么相信我的对象,具有50K属性而且基本上转储值到一个数组,这样我可以有这样的事情结束了?
myArray = ['fieldVaue1','fieldVaue2','fieldVaue3']
编辑:我也可以在这里的第一部分使用一些援助,因为我得到一个空值或未定义,当我尝试和设置对象属性。我还需要帮助,然后遍历对象属性来构建我的数组。任何帮助将不胜感激。
需要注意的是对象的键的顺序是**是很重要的[不保证](https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in#Parameters)* *。你很可能落得'[“fieldValue3”,“fieldValue1”,“fieldValue2”]',所以你必须做一些额外的工作,如果顺序很重要。 – josh3736