我有一個像下面的數組結構。我需要在轉換爲不同的格式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