更新:我在弄清楚如何从MySQL结果循环中构建结果数组时遇到麻烦。重点是用原始数据中的标准化对象填充结果数组。 请帮忙!
var people = [];
for (let i = 0; i < rows.length; i++) {
fillOutPeople(rows[i], function (person) {
people.push(person);
});
}
console.log(shipments);
const fillOutPeople = (result, callback) => {
var person = {
id: result.id,
name: result.personName,
address: {
line1: result.personAdd1,
line2: result.personAdd2,
city: result.personCity,
state: result.personState,
zip: result.personZip
},
familyMembers: []
}
getFamilyMembers(result.id, function (result) {
person.familyMembers = result;
return callback(person);
});
}
function getFamilyMembers(personId, callback) {
connection.query('SELECT * FROM familyMembers WHERE personId=' + personId,
function (err, rows, fields) {
if (err) {
console.log({ result: err });
} else {
familyMembers = [];
rows.forEach(function (familyMember) {
familyMembers.push({
id: familyMember.familyMemberId,
name: familyMember.name
});
});
return callback(familyMembers);
}
});
}
答案 0 :(得分:-2)
也许是地图?
const shipments = rows.map(rowItem => rowItem);
这会迭代“行”数组,并且对于每一行都会调用一个函数,在这种情况下,它只是简单地返回参数,但是您始终可以使用一种方法来操纵数据并返回所需的任何内容。