Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2018, 03:15
Интересующийся
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 27

Объект разбить на части.
Подскажите пожалуйсто:
есть объект из объектов JSON:
"0":{
    "name":"Vsya",
    "lname":"Pupkin",
    "email":"sd@mail.ru",
    "country":"Tam"
},
"1":{
    "name":"Fedya",
    "lname":"Batareqkin",
    "email":"ttt@mail.ru",
    "country":"Tut"
},.......

И там 1275 шт.
Как его разбить на части по 20 шт:
"0":{
    "0":{
        "name":"Vsya",
        "lname":"Pupkin",
        "email":"sd@mail.ru",
        "country":"Tam"
    }, //........ 20 шт
},
"1":{
    "0":{
        "name":"Vsya",
        "lname":"Pupkin",
        "email":"sd@mail.ru",
        "country":"Tam"
    }, //........ 20 шт
},


Спасибо! )
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2018, 08:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,151

Сообщение от Dark Souls
Как его разбить на части по 20 шт:
Из, приведенного тобой, "примера" не понятно как ты собрался все это бить на части...

Но, как вариант, строку можно преобразовать в объект или массив JS, а потом циклом выбрать нужные части в некий массив или объект.
После такого "разбиения" результат опять преобразовать в JSON-строку...
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2018, 08:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 9,630

Сообщение от Dark Souls
есть объект из объектов JSON
JSON это не объект. А откуда эти данные?
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2018, 10:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,043

Dark Souls,
<script>
function fn(obj, num) {
  return Object.keys(obj).reduce(function(a, b, i) {
    i = i / num | 0;
    a[i] ? a[i][b % num] = obj[b] : a[i] = {0:obj[b]};
    return a;
  }, {});
}
;
var d = {}; //для примера
for (var i=0; i<50; i++)  {d[i] = {"name":"Vsya"}}
document.write(JSON.stringify(fn(d, 5)))
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2018, 12:15
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,721

Такой вид ключей так и напрашивается на то, чтобы сделать двумерный массив объектов.
Разбивка по 2
<script>
var obj = {"0":{
    "name":"Vasya",
    "lname":"Pupkin",
    "email":"sd@mail.ru",
    "country":"Tam"
},
"1":{
    "name":"Fedya",
    "lname":"Batareqkin",
    "email":"ttt@mail.ru",
    "country":"Tut"
},
"2":{
    "name":"Vanya",
    "lname":"Shishkin",
    "email":"ss@mail.ru",
    "country":"Zdes"
},
"3":{
    "name":"Frosya",
    "lname":"Burlakova",
    "email":"fff@mail.ru",
    "country":"Gdeto"
}},
arr = [],
i = 0,
j = -1;
arr[0] = [];
for (var key in obj) {
   if (j < 1) { j++ } else { i++; j = 0; arr[i] = []; }
   arr[i][j] = obj[key];
}
document.write(JSON.stringify(arr));
</script>

Последний раз редактировалось Dilettante_Pro, 12.01.2018 в 12:18.
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2018, 20:20
Интересующийся
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 27

Dilettante_Pro, шикарная мысль!
Спасибо всем!
Попробую скрипт Рони прикрутить. (если пойму как он работает)
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2018, 20:47
Интересующийся
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 27

Может кому-то пригодиться.
function pgn(obj, num) {
    return obj.reduce(function (a, b, i) {
        if(i % num === 0) a.push({});
        a[a.length-1][i] = b;
        return a;
    }, []);
}


Спасибо еще раз! )
Ответить с цитированием
  #8 (permalink)  
Старый 13.01.2018, 02:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 9,630

Dark Souls,
если эта затея ради вывода, то зачем же разбивать предварительно, если деление по модулю поможет это в самом процессе вывода.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить объект в другой объект фонарик Общие вопросы Javascript 5 11.10.2015 02:57
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45
Как в jQuery разбить код на части? muravey jQuery 3 10.02.2011 12:05
как разбить текст на части определенного размера? R.I.P.er Общие вопросы Javascript 12 07.12.2010 22:29