2017-02-12 5 views
0

Wie kann ich diese Funktion eine Zeichenfolge zurückgeben, die sagen, Name + 'bekommt eine' + Klasse; Ich muss ein Objekt zurückgeben.Javascript-Problem mit der Rückgabe eines Objekts

+0

benötigen Sie ein Array mit den Strings? –

+0

Gibt ein Objekt zurück oder gibt eine Zeichenfolge zurück? Was hast du versucht? – mplungjan

+0

ein Objekt zurückgeben. Ich habe versucht, console.log (scratchData.name + 'erhält eine' + scratchData.grade) –

Antwort

2

Sie könnten die Ergebnisstrings Karte mit Array#map

function makeStudentsReport(data) { 
 
    return data.map(function (a) { 
 
     return a.name + ' is getting a' + ('AEF'.indexOf(a.grade) === -1 ? "" : "n") + ' ' + a.grade; 
 
    }); 
 
} 
 

 
var scratchData = [{ name: 'Billy Boy', grade: 'D' }, { name: 'Serious Sara', grade: 'B' }, { name: 'Tepid Tom', grade: 'C' }, { name: 'Jet Jane', grade: 'A' }]; 
 

 
console.log(makeStudentsReport(scratchData));

+1

' ..ist bekommen ein "+ (" AEF ".IndexOf (a.grade) == - 1?" N ":" ") + a.grade' – mplungjan

+0

@mplungjan, netter Fang. Aber Ergebniszeichenfolgen sind umgekehrt. –

+0

Ah.! = - 1 wie ich hatte, als ich es schrieb, dann tauschte ich es, aber vergaß das n zu tauschen – mplungjan

0

Nun David, können Sie die Kartenfunktion nutzen sowie Nina tat, oder Sie können einfach die typische for-Schleife Art und Weise verwenden :

var scratchData = [ 
    {name: 'Billy Boy', grade: 'D'}, 
    {name: 'Serious Sara', grade: 'B'}, 
    {name: 'Tepid Tom', grade: 'C'} ]; 

var get = ' is getting an '; // declaring it with var so it's easier to use 

function makeStudentsReport(data) { // data will be the array 
    for (var i = 0; i < data.length; i++){ 
     var everyObject = data[i]; // everyObject is every object in the array 
     console.log(everyObject.name + get + everyObject.grade); 
    } 
} 
makeStudentsReport(scratchData); // passing the array as a parameter to the function 

Oder einfacher Sie Array.ForEach verwenden können() -Methode:

function makeStudentsReport(data) { 
    data.forEach(function(object){ 
     console.log(object.name + get + object.grade); 
    }); 
} 

makeStudentsReport(scratchData); 
Verwandte Themen