2017-09-21 99 views
0

我知道這完全錯了,但我卡住了。我有一個對象數組。運行循環內創建對象

由此我想創建3個對象。

創建的第一個對象我需要一個數組,其中包含原始對象中的所有'uppVal'值。

創建的第二個對象需要「midVal的價值觀和第三對象」lowval價值觀

我知道這是不對的

outputData.push({ 
    dataNum: [] 
    for (var n = 0; n < data.length; n++) { 
     dataNum.push(data[n][key]) 
    } 
    }) 

,但我想在創建得到的值對象

var outputData = []; 
 

 
data = [{ 
 
    "uppVal": 68, 
 
    "midVal": 34, 
 
    "lowVal": 4, 
 
    }, 
 
    { 
 
    "uppVal": 68, 
 
    "midVal": 34, 
 
    "lowVal": 4, 
 
    }, 
 
    { 
 
    "uppVal": 68, 
 
    "midVal": 34, 
 
    "lowVal": 4, 
 
    }, 
 
    { 
 
    "uppVal": 68, 
 
    "midVal": 34, 
 
    "lowVal": 4, 
 
    }, 
 
    { 
 
    "uppVal": 68, 
 
    "midVal": 34, 
 
    "lowVal": 4, 
 
    }, 
 
    { 
 
    "uppVal": 68, 
 
    "midVal": 34, 
 
    "lowVal": 4, 
 
    } 
 
] 
 

 
titlesArr = ['uppVal', 'midVal', 'lowVal'] 
 

 
for (var i = 0; i < 3; i++) { 
 
    var counter = 0 
 
    var key = titlesArr[counter] 
 
    outputData.push({ 
 
    dataNum: [] 
 
    for (var n = 0; n < data.length; n++) { 
 
     dataNum.push(data[n][key]) 
 
    } 
 
    }) 
 
    counter++ 
 
} 
 

 
console.log(outputData);

+0

的輸出是什麼,你期待? –

回答

1

所以你基本上要切換到data[index][key]outputData[key][index]

data = [ { "uppVal": 68, "midVal": 34, "lowVal": 4 }, 
 
     { "uppVal": 68, "midVal": 34, "lowVal": 4 }, 
 
     { "uppVal": 68, "midVal": 34, "lowVal": 4 }, 
 
     { "uppVal": 68, "midVal": 34, "lowVal": 4 }, 
 
     { "uppVal": 68, "midVal": 34, "lowVal": 4 }, 
 
     { "uppVal": 68, "midVal": 34, "lowVal": 4 } ] 
 
      
 
outputData = { uppVal: [], midVal: [], lowVal: [] } 
 

 
for (var i = 0; i < data.length; i++) 
 
{ 
 
    outputData.uppVal[i] = data[i].uppVal 
 
    outputData.midVal[i] = data[i].midVal 
 
    outputData.lowVal[i] = data[i].lowVal 
 
} 
 

 
console.log(outputData)

1

您可以迭代給定的數據和鍵數組,並使用鍵的索引來分配結果集。

var data = [{ uppVal: 68, midVal: 34, lowVal: 4 }, { uppVal: 68, midVal: 34, lowVal: 4 }, { uppVal: 68, midVal: 34, lowVal: 4 }, { uppVal: 68, midVal: 34, lowVal: 4 }, { uppVal: 68, midVal: 34, lowVal: 4 }, { uppVal: 68, midVal: 34, lowVal: 4 }], 
 
    result = [[], [], []]; 
 

 
data.forEach(function (o) { 
 
    ['uppVal', 'midVal', 'lowVal'].forEach(function (k, i) { 
 
     result[i].push(o[k]); 
 
    }); 
 
}); 
 

 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }