Ответы пользователя по тегу HTML
  • Как отсортировать данные в js?

    vachunya
    @vachunya
    Бог верстки, JS maniac, React bomberman
    Итого мне кажется ты нас немного дуришь друг, ты не можешь получить в JS такой объект :
    var jeD= {
        1: {
            id: 2,
            value: 43,
            name: 'GGP'
        },
        1: {
            id: 4,
            value: 22,
            name: 'GGU'
        },
        2: {
            id: 55,
            value: 95,
            name: 'PLVAl'
        },
        2: {
            id: 56,
            value: 13,
            name: 'PLINT'
        },
        2: {
            id: 59,
            value: 133,
            name: 'BARG'
        },
    };


    Ведь в JS одинаковые свойства затирают друг друга, итого на выходе ты получишь вот такой объект:
    jeD= {
        1: {
            id: 4,
            value: 22,
            name: 'GGU'
        },
        2: {
            id: 59,
            value: 133,
            name: 'BARG'
        },
    };


    Поэтому предлагаю сделать хотя бы так:
    var jeD= {
      'items': [
      <?php foreach($data as $item): ?> 
        'number':<?php echo $item['number'] ?>,
        'id': <?php echo $item['id'] ?>,
        'value': <?php echo $item['value'] ?>,
        'name': <?php echo $item['name'] ?>
      <?php endforeach; ?>
        ],
    sortNum(num) {return this.items.filter( elem => elem.number == num).sort( (e1,e2) => e1.value - e2.value)} 
    };


    Теперь метод sortNum() будет возвращать вам отсортированный по номеру

    Например jeD.sortNum(2) вернет вам :
    [
    {number: 2, id: 56, value: 13, name: "PLINT"},
    {number: 2, id: 55, value: 95, name: "PLVAl"},
    {number: 2, id: 59, value: 133, name: "BARG"}
    ]
    собственно то чего вы и хотели, не благодарите))
    Ответ написан
    Комментировать