我的目標是參加其中包含約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