Данные JSON в наборы данных

{
    "count": '2',
    "data": [{
        "value": "58",
        "color": "red"
    }, {
        "value": "45",
        "color": "blue"
    }, {
        "value": "32",
        "color": "yellow"
    }, {
        "value": "25",
        "color": "orange"
    }]
}

Я хотел бы эти данные в 2 набора данных. что-то вроде ниже

"dataone": [{
    "value": "58",
    "color": "red"
}, {
    "value": "45",
    " color": "blue"
}];
"dataatwo": [{
    "value": "32",
    "color": "yellow"
}, {
    "value": "25",
    "color": "orange"
}];

Как выполнить итерации над данными JSON для генерации наборов данных с использованием Javascript.

3 ответа

Решение
var i, res = {}, _data, names = ['dataone', 'datatwo'];

for (i = 0; i < +json.count; i++) {
  _data = json.data.splice(0, +json.count);

  if (_data && _data.length) {
    res[names[i]] = _data;
  }
}

Демо: http://jsbin.com/mitagi/2/edit?js,console

var a={
    "count": '2',
    "data": [{
        "value": "58",
        "color": "red"
    }, {
        "value": "45",
        "color": "blue"
    }, {
        "value": "32",
        "color": "yellow"
    }, {
        "value": "25",
        "color": "orange"
    }]
}

var d1= { dataone: a.data.slice(0,a.count) };
var d2= { datatwo: a.data.slice(count) };
console.log(d1);
console.log(d2);

Общий случай

a.data.forEach(function(e,i){ 
   if(i%a.count==0) 
      console.log(a.data[i],a.data[i+1]);
   }
)

Попробуй это

http://jsfiddle.net/uoh63kx4/3/

var json = {
    "count": '2',
    "data": [{
        "value": "58",
        "color": "red"
    }, {
        "value": "45",
        "color": "blue"
    }, {
        "value": "32",
        "color": "yellow"
    }, {
        "value": "25",
        "color": "orange"
    }]
};
var dataone=[];
var dataatwo=[];

    for(var i=0;i<json.count;i++)
    {
        dataone.push(json.data[i])
    }

    for(var i=json.count;i<json.data.length;i++)
    {
        dataatwo.push(json.data[i])
    }
    console.log(dataone);
    console.log(dataatwo);
Другие вопросы по тегам