我有一個通過從csv文件中提取數據創建的對象數組。該數組看起來像以下(打印時)。如何動態創建一個對象數組?
Array[4]
0:Object
value1:"200"
value2:"95"
value3:"6395"
value4:"2"
1:Object
2:Object
3:Object
我創建它的方式如下。
var strCSV = e.target.result;
var arrCSV = strCSV.match(/[\w .]+(?=,?)/g);
var noOfCols = 4;
// To ignore the first row which is header
var hdrRow = arrCSV.splice(0, noOfCols);
var data = [];
while (arrCSV.length > 0) {
var obj = {};
// extract remaining rows one by one
var row = arrCSV.splice(0, noOfCols)
for (var i = 0; i < row.length; i++) {
obj[hdrRow[i]] = row[i].trim();
}
// push row to an array
data.push(obj)
}
所以我們假設現在我想創建另一個具有相同數據值但不同鍵的對象數組。
var tableData = [
{key1: "", key2: "", key3: "", key4: ""}];
我試過不同的方法來做我一直沒能做到。例如,我嘗試了以下。
for(var i=0; i<data.length; i++){
console.log(i);
tableData[i]["key1"] = data[i].value1;
}
或類似形式的東西。我創建了一個空的數組tableData = [],認爲在現場創建元素會做到這一點,但它不會。無論如何要做到這一點?我不能只是創建一個對象,並從第一個數組中逐個拷貝所有元素,因爲第一個數組中的元素數量可能是任何東西。
它仍然有點不清楚你在問什麼。你的輸出格式是什麼樣子? –
你忘記了初始化對象。使用這個將初始化對象並設置值:tableData [i] = {key1:data [i] .value1} – Gilsdav
每個對象中是否有可變數量的鍵?換句話說,第二個對象可以具有「value1:」1200「'和第三個'value4:」3「,value5:」22「'?在這種情況下,您如何從一個關鍵名稱映射到另一個關鍵名稱? –