我从表格数据
收到这种形式的对象{
no_of_sections: “2”,
0: “10,20,20”,
1: “10,10”
}
我需要将其转换为以下格式
{
no_of_sections: “2”,
marks_per_main: “10,20,20|10,10”
}
对象的架构保持不变。
例如。如果no_of_sections: "3"
那么
{
no_of_sections: “3”,
0: “12,10,24”,
1: “10,15”,
2: "20,20,10,5"
}
逗号分隔值的值可以是任何值。
我能实现这一目标的最有效方法是什么?
如果有帮助,我确实包含了lodash。
答案 0 :(得分:0)
var newObj = {}
newObj.no_of_sections = oldObj.no_of_sections
newObj.marks_per_main = oldObj[0] + '|' + oldObj[1]
如果'oldObj'始终采用相同的格式,那么应该这样做。
答案 1 :(得分:0)
function doit(obj) {
var t = [];
var retobj = {no_of_sections: obj.no_of_sections};
for (var i=0; i < parseInt(obj.no_of_sections); i += 1) {
t.push(obj[i]);
}
retobj.marks_per_main = t.join('|');
return retobj;
}
我认为应该这样做 - 或者在不创建新对象的情况下更改对象
function doit(obj) {
var t = [];
for (var i=0; i < parseInt(obj.no_of_sections); i += 1) {
t.push(obj[i]);
delete obj[i];
}
obj.marks_per_main = t.join('|');
}
答案 2 :(得分:0)
基于MeltingPoint的回答:
var newObj = {}
var sections = [];
newObj.no_of_sections = oldObj.no_of_sections
for(i=0;i<parseInt(oldObj.no_of_sections);i++) {
sections.push(oldObj[i]);
}
newObj.marks_per_main = sections.join('|');
答案 3 :(得分:-1)
请执行代码
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Demo</title>
<script>
window.onload = function () {
var jsonObj = {
no_of_sections: "2",
0: "10,20,20",
1: "10,10"
};
document.getElementById("old").textContent = JSON.stringify(jsonObj);
jsonObj.marks_per_main = jsonObj[0] + '|' + jsonObj[1];
delete jsonObj[0];
delete jsonObj[1];
document.getElementById("new").textContent = JSON.stringify(jsonObj);
}
</script>
</head>
<body>
<pre id="old"></pre>
<pre id="new"></pre>
</body>
</html>