根据总数和奇数/偶数分割JSON对象

时间:2014-04-17 01:15:04

标签: javascript jquery

enter image description here

我想实现的目标是,首先计算JSon对象的总数console.log(Jobj.length);,例如,我现在有13个项目。

#red div里面应该是7个项目,Math.round(Jobj.length/2)#blue div的内部应该是6 Math.floor(Jobj.length/2),如果我有14个项目,那么{{1 }和#red都有7个项目。

现在的问题是,我如何分割我想要的方式,将前7个分成#red,休息到#blue。 如果有人可以提供帮助,我已经做了部分工作?

http://jsfiddle.net/6LmFL/1/

3 个答案:

答案 0 :(得分:2)

使用数组slice()方法获取数组的子序列:

var redcount = Math.ceil(Jobj.length/2); // Use Math.ceil() to put the excess in #red
var red = Jobj.slice(0, redcount);
var blue = JObj.slice(redcount);

然后,您可以在DIV中显示redblue的内容。

答案 1 :(得分:1)

现在有效。我创造了一个小提琴:http://jsfiddle.net/6LmFL/2/

这是我修改过的部分:

$.each(Jobj, function(i,v){
 if(i<7) {
  ($('<p>').text(v.item)).appendTo('.col1');
 }
 else {
   ($('<p>').text(v.item)).appendTo('.col2');
 }
});

答案 2 :(得分:1)

更准确的答案

var half = Math.floor( Jobj.length / 2);
for (var i=0;i<Jobj.length ;i++) {
    if (i<=half) {
         ($('<p>').text(Jobj[i].item)).appendTo('.col1');
    } else {
        ($('<p>').text(Jobj[i].item)).appendTo('.col2');
    }
}

编辑:看看Barmar的解决方案。它适合你!但它需要更多代码行:))