За последние 24 часа нас посетили 17179 программистов и 1248 роботов. Сейчас ищут 949 программистов ...

Перебор массива с объектами

Тема в разделе "JavaScript и AJAX", создана пользователем ureech, 22 июн 2020.

  1. ureech

    ureech Активный пользователь

    С нами с:
    13 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Привет. Имею
    Код (Javascript):
    1. res = Array[{...}{...}{...}]0: Object { to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00",}
    2. 1: Object { to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00",}
    3. 2: Object { to_fact_hip: "0.00", to_fact_neck: "0.00", to_fact_weist: "0.00",}
    Пытаюсь из этого сделать что то такое:
    Код (Javascript):
    1. 0:Object{name:to_fact_hip, data:Array[10,10,0]1:Object{name:to_fact_neck, data:Array[30,30,0]......
    Весь мозг забил этими объектами).
    Например получил названия ключей.
    Код (Javascript):
    1. var obj =[];
    2. res.map((o) => {
    3. obj = Object.keys(o);
    4. });
    А вот что дальше не могу понять.Пробовал через for
    Код (Javascript):
    1. for(j=0;j<obj.length;++j){
    2.         for(i=0;i<res.length;i++){
    3.            arr[j] = +res[i][obj[j]];
    4.         a[j] = {name:obj[j],data:arr[j]}
    5.         }
    6. }
    Но не получается собрать как надо.Подскажите,плиз)
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Имена лучше использовать как ключи
    PHP:
    1. var res = [{ to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00"},
    2. { to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00"},
    3. { to_fact_hip: "0.00", to_fact_neck: "0.00", to_fact_weist: "0.00"}];
    4.  
    5. var result = [];
    6.  
    7. res.forEach((obj, k) => {
    8.     Object.keys(obj).forEach((i) => {
    9.         if (typeof result[i] === 'undefined'){
    10.             result[i] = {'data': []};
    11.         }
    12.         result[i]['data'][k] = obj[i];
    13.     });
    14. });
    15.  
    16. console.log(result);
    а лучше вообще так, без лишних ключей
    Код (Javascript):
    1. res.forEach((obj, k) => {
    2.     Object.keys(obj).forEach((i) => {
    3.         if (typeof result[i] === 'undefined'){
    4.             result[i] = [];
    5.         }
    6.  
    7.         result[i][k] = obj[i];
    8.     });
    9. });
     
    #2 Artur_hopf, 22 июн 2020
    Последнее редактирование: 22 июн 2020
    ureech нравится это.
  3. ureech

    ureech Активный пользователь

    С нами с:
    13 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Спасибо большое.Пойду разбираться)