如何解决Javascript json 对象减少多个键?
我正在开发一个应用程序,我是一名实习生,我需要按名称、权重和所有成绩加入这些 JSON 对象。我是为了名字和体重而做的,现在我们需要添加成绩,完全不知道甚至不知道谷歌什么......
这是函数,从 var holder = {} 下来的代码是旧算法,需要一个新的来加入多个键。
async function grade() {
try {
const data = await model.run_stock.findAll({
offset: 0,limit: 200,include: [
{
model: model.truerun,attributes: { exclude: ["updatedAt","batchId","gradeListId"] },include: [
{
model: model.batch,attributes: [
"id","name","age","quantity","source","hatchery",],include: [
{
model: model.shellfish,attributes: ["id","type","species"],},{
model: model.grade_list,"alias"],});
let a = [];
for (let i = 0; i <= data.length; i++) {
if (!data[i]) {
continue;
}
const { avgTotalWeight } = data[i];
const { name } = data[i].truerun.batch.shellfish;
const { alias } = data[i].truerun.grade_list;
if (avgTotalWeight !== null) {
let grade1,grade2,grade3 = 0;
if (alias === "G1") {
grade1 = avgTotalWeight;
} else grade1 = 0;
if (alias === "G2") {
grade2 = avgTotalWeight;
} else grade2 = 0;
if (alias === "G3") {
grade3 = avgTotalWeight;
} else grade3 = 0;
let b = {
avgTotalWeight: avgTotalWeight,name: name,grade: {
grade1: grade1,grade2: grade2,grade3: grade3
}
};
a.push(b);
}
}
var holder = {};
a.forEach(function (d) {
if (holder.hasOwnProperty(d.name)) {
holder[d.name] = holder[d.name] + d.avgTotalWeight;
} else {
holder[d.name] = d.avgTotalWeight;
}
});
var obj2 = [];
for (var prop in holder) {
obj2.push({ name: prop,weight: holder[prop] });
}
return a;
} catch (err) {
throw err;
}
}
这是邮递员请求数据。
{
"data": [
{
"avgTotalWeight": 16,"name": "france Naicin","grade": {
"grade1": 16,"grade2": 0,"grade3": 0
}
},{
"avgTotalWeight": 16,"name": "pacific gigas",{
"avgTotalWeight": 13,"grade": {
"grade1": 13,{
"avgTotalWeight": 14,"grade": {
"grade1": 14,{
"avgTotalWeight": 15,"grade": {
"grade1": 15,{
"avgTotalWeight": 12,"grade": {
"grade1": 12,{
"avgTotalWeight": 11,"grade": {
"grade1": 0,"grade2": 11,{
"avgTotalWeight": 10,"grade": {
"grade1": 10,{
"avgTotalWeight": 9,"grade3": 9
}
}
]
}
最后应该是这样的:
{
"name": "FranceNiance","total": 80,"grades": {
"grade1": "30","grade2": "30","grade3": "20"
},....
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。