Перебор массива с объектами
Привет.
res = Array[{...}{...}{...}] 0: Object { to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00", … } 1: Object { to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00", … } 2: Object { to_fact_hip: "0.00", to_fact_neck: "0.00", to_fact_weist: "0.00", … } Пытаюсь из этого сделать что то такое: 0:Object{name:to_fact_hip, data:Array[10,10,0] 1:Object{name:to_fact_neck, data:Array[30,30,0] ...... Весь мозг забил этими объектами). Например получил названия ключей. var obj =[]; res.map((o) => { obj = Object.keys(o); }); Перебираю массив for (let key in res) { let subobj = res[key];//Здесь у меня три объекта } А вот что дальше не могу понять.Пробовал через for for(j=0;j<obj.length;++j){ for(i=0;i<res.length;i++){ arr[j] = +res[i][obj[j]]; a[j] = {name:obj[j],data:arr[j]} } } Не получается.Как собрать такой массив?Help! |
ureech,
<script> function fn(arr) { let keys = Object.keys(arr[0]), obj = {}; keys.forEach(k => obj[k] = []); arr.forEach(a => keys.forEach(k => obj[k].push(+a[k]))); return keys.map(k => ({name : k, data : obj[k]})) } let res = [{ to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00"}, { to_fact_hip: "10.00", to_fact_neck: "30.00", to_fact_weist: "20.00"}, { to_fact_hip: "0.00", to_fact_neck: "0.00", to_fact_weist: "0.00"}] let totall = fn(res) document.write(JSON.stringify(totall, "", 4)) </script> |
рони,
Благодарю. Сам бы я точно такое не сотворил.Пойду разбираться).Спасибо,ещё раз). |
Часовой пояс GMT +3, время: 04:56. |