2017-09-21 5 views
0

Ich weiß das völlig falsch, aber ich stecke fest.Run-Schleife innerhalb einer Objekterstellung

Ich habe eine Reihe von Objekten.

Davon möchte ich 3 Objekte erstellen.

Das erste Objekt erstellt Ich brauche ein Array, das alle 'uppVal' Werte in den ursprünglichen Objekten hat.

Das zweite Objekt erstellt muss die Werte ‚midVal‘ und das dritte Objekt der ‚LowVal‘ Werte

Ich weiß, das

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

falsch ist, aber ich versuche, die Werte zu erhalten, während die Schaffung das Objekt

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

was ist die Ausgabe, die Sie erwarten? –

Antwort

1

Sie wollen also im Grunde data[index][key]-outputData[key][index] wechseln:

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

Sie könnten die angegebenen Daten und das Array von Schlüsseln wiederholen und der Ergebnismenge mit dem Index der Schlüssel zuweisen.

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; }