我有一个像下面的数组结构。我需要在转换为不同的格式Javascript阵列结构
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;
}
我没有得到预期的答案,请有人帮我纠正这一点。由于
这里是corect代码不用其他的语法错误
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}
感谢
你期望什么?你真正看到的是什么? – David
对于初学者,您有许多语法错误。你的数组定义和for循环语句是两个问题可能出现的地方。 –
您需要了解JavaScript数组和对象的基础知识。您需要的输出不是有效的JavaScript。 – erturne