我有一个数组。
var res= [{
"MATNR": "4",
"TYPES": [{
"KSCHL": "PR00",
"KBETR": "12.000"
}, {
"KSCHL": "K005",
"KBETR": "-10.000"
}]
},
{
"MATNR": "5",
"TYPES": [{
"KSCHL": "PR00",
"KBETR": "12.000"
}, {
"KSCHL": "K005",
"KBETR": "-10.000"
}]
}
]
用于处理数组的代码
let insert ='INSERT INTO T VALUES ('
res.forEach((values)=>
Object.keys(values).forEach(function (item) {
insert =insert+item.MATNR+','+item.KBETR
})
);
我必须形成一条插入语句
INSERT INTO T VALUES(4,12.00,-10.00)
INSERT INTO T VALUES(5,12.00,-8.00)
我尝试了循环,但没有得到想要的结果。
答案 0 :(得分:3)
您可以将map
方法与某些模板文字一起使用,以返回一个字符串作为结果。
var res = [{"MATNR":"4","TYPES":[{"KSCHL":"PR00","KBETR":"12.000"},{"KSCHL":"K005","KBETR":"-10.000"}]},{"MATNR":"5","TYPES":[{"KSCHL":"PR00","KBETR":"12.000"},{"KSCHL":"K005","KBETR":"-10.000"}]}]
const string = res.map(({MATNR, TYPES}) => {
const types = TYPES.map(({KBETR}) => KBETR).join(',')
return `INSERT INTO T VALUES(${MATNR},${types})`
}).join("\n")
console.log(string)
答案 1 :(得分:0)
当您遍历res.forEach(values => ..)时,每个“值”都是像{ MATNR: SOME_NUMBER, TYPES: [array of objects with keys "KSCHL" and "KBETR"] }
之类的对象。
因此,Object.keys(values)
不能使您立即访问MATNR和KBETR字段。要获得KBETR部分,您需要检查TYPES字段。
为将来提供参考,请在发布之前格式化代码,以便其他人更易读。 :)