Я пытаюсь объект push в массив, который не происходит, он возвращает пустой массив объектов. Как это [{}, {}], не показывая значения.

Вот мой код JS.

function sendFormValues() {
            var result_arr = [];
            var kids = $(".panel-group").map(function() {

                kidName = $(this).find('.kid-name').text();
                kidAge = $(this).find('.kid-age').text();

                if (kidName || kidAge) {
                    var obj = {
                        kidName: kidName,
                        kidAge: kidAge
                    };
                    console.log(obj); //** Here object print correctly.**
                    result_arr.push(obj);
                    console.log(result_arr); //** here showing empty object. line []**/
                }
                return result_arr;
            }).get();
            console.log(result_arr); /** // printing like [{},{}]**/
        }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="panel-group">
        < div class=" panel-heading " >
            <a class="kid-name ">Some dynamic value</a>
            <a class="kid-age ">Some dynamic value</a>
      </div >
      </div >
    <a href="javascript() " onclick="sendFormValues() ">Send value</a>

Может ли кто-нибудь помочь здесь, что я здесь делаю ошибку?

Заранее спасибо.

0
Zain

2 ответа

Я помещаю значение в список отдельно, и оно работает, как вы ожидаете, результат в два массива [{}, {}]

<html>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">
    </script>
    <script>
       function sendFormValues() {
        var result_arr = [];
        var kids = $(".panel-group").map(function() {

        kidName = $(this).find('.kid-name').text();
        kidAge = $(this).find('.kid-age').text();

        if (kidName || kidAge) {
            //console.log(obj); // Here object print correctly.**
            result_arr.push({
            kidName: kidName
            });
            result_arr.push({
            kidAge: kidAge
            });
            console.log(result_arr); // here showing empty object. line []**
        }
        return result_arr;
        }).get();
        console.log("result", result_arr); // printing like [{},{}]**
        }
    </script>
<body>
    <div class="panel-group">
      <div class="panel-heading">
        <a class="kid-name ">Some dynamic value</a>
        <a class="kid-age ">Some dynamic value</a>
      </div>
      </div>

      <a href="#" onclick="sendFormValues()">Send value</a>
    </body>
</html>
<!-- end snippet -->

function sendFormValues() {
  var result_arr = [];
  var kids = $(".panel-group>.panel-heading").each(function() {
    var kidName = $(this).find('.kid-name').text();
    var kidAge = $(this).find('.kid-age').text();

    var obj = {
      kidName: kidName || '',
      kidAge: kidAge || ''
    };
    result_arr.push(obj);
  });
  console.log(result_arr);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="panel-group">
  <div class="panel-heading">
    <a class="kid-name ">Some dynamic value1</a>
    <a class="kid-age ">Some dynamic value1</a>
  </div>
  <div class="panel-heading">
    <a class="kid-name ">Some dynamic value2</a>
    <a class="kid-age ">Some dynamic value2</a>
  </div>
  <a href="javascript:;" onclick="sendFormValues() ">Send value</a>
</div>

Посмотри это.

58554189