gpt4 book ai didi

javascript - 如何用 JavaScript 模拟 SQL 连接

转载 作者:行者123 更新时间:2023-11-29 16:50:04 29 4
gpt4 key购买 nike

如何将两个对象(分数和人员)合并为一个对象(合并)。我对此很苦恼,因为我是 JavaScript 的新手,而且我正在使用 Meteor+Mongo 组合。

var scores = [
{person_id: "1", score_math: 9, score_biology: 9, score_chemistry: 9},
{person_id: "2", score_math: 9, score_biology: 8, score_chemistry: 9}
];

var persons = [
{person_id: "1", person_name: "Bob", home_country: "Wakerly", age: 12},
{person_id: "2", person_name: "Arnie", home_country: "Templeton", age: 15},
{person_id: "3", person_name: "Steve", home_country: "Elberon", age: 10}
];


var joined = [
{person_id: "1", person_name: "Bob", home_country: "Wakerly", score_math: 9, score_biology: 9, score_chemistry: 9},
{person_id: "2", person_name: "Arnie", home_country: "Templeton", score_math: 9, score_biology: 8, score_chemistry: 9},
{person_id: "3", person_name: "Steve", home_country: "Elberon", score_math: 0, score_biology: 0, score_chemistry: 0}];

最佳答案

这是一个带有临时对象和一些原生 JS 数组方法的提案。

var scores = [{ person_id: "1", score_math: 9, score_biology: 9, score_chemistry: 9 }, { person_id: "2", score_math: 9, score_biology: 8, score_chemistry: 9 }],
persons = [{ person_id: "1", person_name: "Bob", home_country: "Wakerly", age: 12 }, { person_id: "2", person_name: "Arnie", home_country: "Templeton", age: 15 }, { person_id: "3", person_name: "Steve", home_country: "Elberon", age: 10 }],
joined = persons.map(function (a) {
function setProp(o) { Object.keys(o).forEach(function (k) { object[k] = o[k]; }); }
var object = {};
setProp(a);
setProp(this[a.person_id] || { score_math: 0, score_biology: 0, score_chemistry: 0 });
return object;
}, scores.reduce(function (r, a) {
r[a.person_id] = a;
return r;
}, Object.create(null)));

document.write('<pre>' + JSON.stringify(joined, 0, 4) + '</pre>');

关于javascript - 如何用 JavaScript 模拟 SQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884556/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com