胡說叔叔
2022-11-11 16:37:49
我想在節點 js 中制造 mysql 的結果我想做出這樣的結果[ { "m_idx" :1 , "contents" : { "m_name" : "a", "m_name" : "b", } }, "m_idx" :2, "contents" : { "m_name" : "c", } }]但我的結果是{ "m_idx": 1, "contents": [ { "m_name": "a" } ] }, { "m_idx": 1, "contents": [ { "m_name": "b" } ] },我不知道如何制造結果任何人都可以幫助我...?請問這是我練習的代碼let result = []; let categories = []; connection.query(sql, function (err, rows) { if (res.status(200)) { rows.forEach(function (row, index) { let variable = { m_idx: row.m_idx, contents: [] }; categories.push(variable); variable.contents.push({ m_name: row.m_name, name: row.name, }) }); res.json(categories); } });我的數據庫結果是這樣的-----|1|a||1|b||2|c|-----
1 回答

MYYA
TA貢獻1868條經驗 獲得超4個贊
我猜contents你想要的是一個數組而不是一個對象,因為同一個對象中不應該有相同的屬性。
也許這會對你有所幫助。
const rows = [
{"m_idx": 1, "m_name": "a"},
{"m_idx": 1, "m_name": "b"},
{"m_idx": 2, "m_name": "c"}
]
const map = new Map();
rows.forEach(row => {
if (map.get(row.m_idx) === undefined) {
map.set(row.m_idx, {
"m_idx": row.m_idx,
"contents": [{"m_name": row.m_name}]
});
} else {
map.get(row.m_idx).contents.push({"m_name": row.m_name});
}
});
const result = [];
map.forEach((v, k) => {
result.push(v);
});
console.log(result);
添加回答
舉報
0/150
提交
取消