1
我正在解析一個excel文件,它有7列和超過300k行。Javascript對象創建 - 創建多個對象
我需要創建對象(Nodejs端)並在數據庫中進行批量插入。
我想知道爲此目的創建大量對象的最佳方法是什麼。
我想出了三種方法,並且不知道哪一個會是窩在速度和內存方面:
第一:
var bulkObjects = [];
worksheet.eachRow({includeEmpty: true}, function (row, rowNumber) {
var currentObject = createRowObject(row.values);
bulkObjects.push(currentObject);
});
function createRowObject(row) {
return {
Row1: row[1],
Row2: row[2],
Row3: row[3],
Row4: row[4],
Row5: row[5],
Row6: row[6]
}
}
二:
var bulkObjects = [];
worksheet.eachRow({includeEmpty: true}, function (row, rowNumber) {
var currentObject = **new** createRowObject(row.values);
bulkObjects.push(currentObject);
});
function createRowObject(row) {
this.Row1: row[1],
this.Row2: row[2],
this.Row3: row[3],
this.Row4: row[4],
this.Row5: row[5],
this.Row6: row[6]
}
第三種:
var bulkObjects = [];
worksheet.eachRow({includeEmpty: true}, function (row, rowNumber) {
var currentObject = createRowObject(row.values);
bulkObjects.push(currentObject);
});
function createRowObject(row) {
var o = new Object();
o["Row1"] = row[1];
o["Row2"] = row[2];
o["Row3"] = row[3];
o["Row4"] = row[4];
o["Row5"] = row[5];
o["Row6"] = row[6];
return o;
}
哪一個最適合創建大量對象。有沒有另一種方法?
你爲什麼不建立一個測試與性能分析JavaScript性能檢查? –
可能的重複[哪種方式最適合在javascript中創建對象?在變量的對象之前必須是「var」](http://stackoverflow.com/questions/6843951/which-way-is-best-for-creating-an-object-in-javascript-is-var-necessary- befor) –
如果內存是一個問題,最好的辦法是做批量bulkObjects的多次插入,而不是一次全部完成,因此所有已經插入的對象都可以被垃圾收集。關於對象的創建,由於對象上沒有方法,所有3個方法應該以相同的速度運行,所以請選擇更簡單的方法。您甚至可以通過刪除函數調用並直接推送對象來簡化它。 – Shilly