我有一个如下所示的数组结构。我需要将其转换为不同的格式
test = [
S1 {
science : 90
}
S2
{
Science:80,
Maths :56
}
]
我有一个数组,其中包含以下所有主题
Subjects {
Science : 0
Maths :0
English:0
}
我想将上面的数组转换为下面的结构
S1 {
science : 90,
Maths :0,
English:0
}
S2
{
Science:80,
Maths :56,
English:0
}
这意味着如果主题不可用,我想输入一个键值对作为 0
我尝试了以下
for (var i = 0; i < test.length; i++) {
for (var key in test[i]) {
for (var iKey in test[i][key]) {
varr s = (t.hasOwnProperty(iKey)) ? t[iKey] : createSubjects();
s[key] = test[i][key][iKey];
t[iKey] = s;
}
}
}
function createSubjects (){
var obj = [];
//categoryArray
for ( var a = 0, l = Subjects a < l; ++a ) {
obj[Subjects [a]] = 0;
}
return obj;
}
我没有得到预期的答案,请有人帮我纠正这个问题。谢谢
这是没有语法错误的正确代码
var test = [
S1 = {
science : 90
},
S2 =
{
Science:80,
Maths :56
}
]
var Subjects = {
Science : 0,
Maths :0,
English:0
}
function createSubjects (){
return {'Maths' : 0, 'Science': 0,'English':0}
}
var t = {}
console.log(createSubjects())
for (var i = 0; i < test.length; i++) {
for (var key in test[i])
{
var s = (t.hasOwnProperty(key)) ? t[key] : createSubjects();
console.log(s)
}
}
我得到的是
Object { Maths=0, Science=0, English=0}
所有类型的。但我需要的是
Object { Maths=0, Science=90, English=0}
Object { Maths=56, Science=80, English=0}
谢谢