以下のような配列構造があります。別の形式に変換する必要があるもの
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}
ありがとう