2015-06-08 55 views
0

我想定義一個二維對象,但我沒有成功。JavaScript對象尺寸

var b = [1,2,3,4,5,6,7,8]; 
var a = {}; 
var c = ["baslik","resim","icerik","links"]; 

for(i=0;i<2;i++){ 
    for(s=0;s<4;s++){ 
     a[c[s]]=b[s];   
    } 
} 

document.writeln(JSON.stringify(a)); 

輸出:

{"baslik":1,"resim":2,"icerik":3,"links":4} 

我想這樣的輸出:

{"baslik":1,"resim":2,"icerik":3,"links":4}, 
{"baslik":5,"resim":6,"icerik":7,"links":8} 
+0

請與格式正確的縮進和格式化你的代碼。 – jfriend00

回答

0

嘗試這樣

var b = [1,2,3,4,5,6,7,8]; 
 
var a = []; 
 
var c = ["baslik","resim","icerik","links"]; 
 

 
var n= Math.floor(b.length/c.length); 
 
var k=0; 
 
for(var i=0;i<n;i++){ 
 
    
 
    var entity={}; 
 
    for(var j=0;j<c.length;j++){ 
 
    entity[c[j]]= k<b.length ? b[k++] : 0; 
 
    } 
 
    a.push(entity); 
 

 
} 
 
console.log(JSON.stringify(a));

+0

Thanks Anik。我一直在嘗試3天 –

+0

歡迎您:) –

2

嘗試:

var a = []; //Must be a array 
var b = [1,2,3,4,5,6,7,8]; 
var c = ["baslik","resim","icerik","links"]; 

for(i=0;i<2;i++){ 
    var obj = {} //Object 
    for(s=0;s<4;s++){ 
     obj[c[s]]=b[s+4*i];  
    } 

    a.push(obj) 
} 

document.writeln(JSON.stringify(a)); 
+0

您輸出:[{「baslik」:1,「resim」:2,「icerik」:3,「links」:4},{「baslik」:1,「resim」:2,「icerik」 「links」:4}] –

+0

重複輸出..請幫忙 –

+0

更新'b [s]'到'b [s + i]'。請注意,這些值取決於您正在執行的循環值 –

0

嘗試:

var b = [1, 2, 3, 4, 5, 6, 7, 8]; 
 
var a = []; 
 
var c = ["baslik", "resim", "icerik", "links"]; 
 

 
var n = c.length; 
 

 
b.reduce(function(x, num, i) { 
 

 
    x[c[i % n]] = num; 
 

 
    if (((i + 1) % n) == 0) { 
 
    a.push(x); 
 
    x = {}; 
 
    } 
 

 
    if ((i + 1) == b.length) return a; 
 

 
    return x; 
 

 
}, {}) 
 

 
console.log(JSON.stringify(a));