Почему значения массива js перезаписываются? - PullRequest
2 голосов
/ 28 января 2020

У меня проблема, когда я пытаюсь присвоить значения массиву js, я имею в виду, я могу проверить, что я перебираю все элементы, но когда я присваиваю значение, размер, в который я помещаю это значение, не изменить ... Это упрощенный html:

<div id="HotelAccordion0">
    <div class="panel panel-default">
        <div class="panel-heading" id="cabeceraTarifas">
            <h4 class="panel-title">
               <a data-toggle="collapse" data-parent="#HotelAccordion0" href="#collapse1" class="" aria-expanded="true">

               <i class="fa fa-lg fa-angle-up pull-right"></i>
                    Standard -  <span class="precioMasBajo">Desde <strong>50,00 €</strong></span>
                </a>
            </h4>
        </div>

    </div>
    <div class="panel panel-default">
        <div class="panel-heading" id="cabeceraTarifas">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#HotelAccordion0" href="#collapse2" class="collapsed" aria-expanded="false">
                    <i class="fa fa-lg fa-angle-down pull-right"></i>
                    <i class="fa fa-lg fa-angle-up pull-right"></i>
                    Vista Jardin -  <span class="precioMasBajo">Desde <strong>70,00 €</strong></span>
                </a>
            </h4>
        </div>

    </div>
    <div class="panel panel-default">
        <div class="panel-heading" id="cabeceraTarifas">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#HotelAccordion0" href="#collapse3" class="collapsed" aria-expanded="false">
                    <i class="fa fa-lg fa-angle-down pull-right"></i>
                    <i class="fa fa-lg fa-angle-up pull-right"></i>
                    Doble + Supletoria adulto -  <span class="precioMasBajo">Desde <strong>82,80 €</strong></span>
                </a>
            </h4>
        </div>

    </div>
</div>

Это 1 объект, тогда, например, у меня есть еще один:

<div class="panel-group smart-accordion-default" id="HotelAccordion1">
    <div class="panel panel-default">
        <div class="panel-heading" id="cabeceraTarifas">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#HotelAccordion0" href="#collapse1" class="" aria-expanded="true">

                    <i class="fa fa-lg fa-angle-up pull-right"></i>
                    Standard -  <span class="precioMasBajo">Desde <strong>40,00 €</strong></span>
                </a>
            </h4>
        </div>

    </div>
    <div class="panel panel-default">
        <div class="panel-heading" id="cabeceraTarifas">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#HotelAccordion0" href="#collapse2" class="collapsed" aria-expanded="false">
                    <i class="fa fa-lg fa-angle-down pull-right"></i>
                    <i class="fa fa-lg fa-angle-up pull-right"></i>
                    Vista Mar-  <span class="precioMasBajo">Desde <strong>200,00 €</strong></span>
                </a>
            </h4>
        </div>

    </div>
    <div class="panel panel-default">
        <div class="panel-heading" id="cabeceraTarifas">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#HotelAccordion0" href="#collapse3" class="collapsed" aria-expanded="false">
                    <i class="fa fa-lg fa-angle-down pull-right"></i>
                    <i class="fa fa-lg fa-angle-up pull-right"></i>
                    Doble + blablabla -  <span class="precioMasBajo">Desde <strong>90,95 €</strong></span>
                </a>
            </h4>
        </div>

    </div>
</div>

Так что мне нужно взять первое значение, наименьшее число (пришло со спины, упорядоченной по minPrice), что я могу сделать, но одно значение складывает друг друга в памяти переменных (?), вот как я получаю только значение:

var preciosHotelesArray = [];
var numberPattern = /\d+/g;

for (var i = 0; i < whatever.length; i++) {
        var precioMinimoPorHotel = $("#HotelAccordion" + i + ">.panel.panel-default:first-child").map(function () {
        return this.innerText.match(numberPattern).join(',');
        console.log(precioMinimoPorHotel);
        preciosHotelesArray[i] = this.innerText.match(numberPattern).join(',');
    }).get();    
}

И здесь все значения складываются друг в друга, что бы я ни видел, только последние значения находятся внутри массива ?, Что я делаю не так ?? *

---- --- РАБОЧИЙ ПРИМЕР ---------

Fiddle link

Так что теперь отображается только 50. И должно отображаться {0:50, 1:40} .

Большое спасибо !!.

1 Ответ

1 голос
/ 28 января 2020

Вы должны переместить строку с return в конец функции, после добавления значения в массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...