2015-06-08 104 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));