返回对象的Javascript问题

时间:2017-02-12 09:57:26

标签: javascript arrays object

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


function makeStudentsReport(data)  

如何让这个函数返回一个字符串,表示名字+'正在获得'+等级;我必须归还一个物体。

2 个答案:

答案 0 :(得分:2)

您可以使用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 :(得分:0)

大卫,你可以使用地图功能和Nina一样,或者你可以使用典型的for循环方式:

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

或者更简单一点,你可以使用Array.forEach()方法:

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

makeStudentsReport(scratchData);