Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как правильно разделить массив? (https://javascript.ru/forum/dom-window/76851-kak-pravilno-razdelit-massiv.html)

gsdev99 20.02.2019 19:04

Как правильно разделить массив?
 
Здравствуйте. Подскажите, пожалуйста, как правильно разделить массив?
const arr = {
  list: [
    {id: 1, pos: {dv: "T5"}},
    {id: 2, pos: {dv: "T10"}},
    {id: 3, pos: {dv: "T12"}},
    {id: 4, pos: {dv: "T11"}},
    {id: 5, pos: {dv: "T45"}},
    {id: 6, pos: {dv: "T56"}},
    {id: 7, pos: {dv: "T38"}},
    {id: 8, pos: {dv: "T-9"}},
    {id: 9, pos: {dv: "T0"}}
  ]
};

Мне необходимо по условию, если свойство dv значение T больше или равно 38 получить следующую структуру:
const arr1 = {
  list: [
    {id: 8, pos: {dv: "T-9"}},
    {id: 9, pos: {dv: "T0"}},
    {id: 1, pos: {dv: "T5"}},
    {id: 2, pos: {dv: "T10"}},
    {id: 4, pos: {dv: "T11"}},
    {id: 3, pos: {dv: "T12"}},
  ]
};

const arr2 = {
  list: [
    {id: 5, pos: {dv: "T45"}},
    {id: 6, pos: {dv: "T56"}}
  ]
};

рони 20.02.2019 20:01

gsdev99,
...
const arr = {
  list: [
    {id: 1, pos: {dv: "T5"}},
    {id: 2, pos: {dv: "T10"}},
    {id: 3, pos: {dv: "T12"}},
    {id: 4, pos: {dv: "T11"}},
    {id: 5, pos: {dv: "T45"}},
    {id: 6, pos: {dv: "T56"}},
    {id: 7, pos: {dv: "T38"}},
    {id: 8, pos: {dv: "T-9"}},
    {id: 9, pos: {dv: "T0"}}
  ]
};
function getNum(str)
{
   return + str.replace(/[^-\d]/g, "")
}
const T = 38;
const arr2 = {list : []};
arr.list.reduceRight((a,b,i,c) => {if(getNum(b.pos.dv) >= T) {c.splice(i,1);a.unshift(b);
} ;return a},  arr2.list)
console.log(arr2)

gsdev99 21.02.2019 19:14

Спасибо.


Часовой пояс GMT +3, время: 14:22.