简体   繁体   English

Javascript object 未推入阵列

[英]Javascript object not pushing into an Array

I'm trying to object push into an Array, which is not not happening it return empty object array.我正在尝试将 object 推入一个数组,但没有发生它返回空的 object 数组。 LIke this [{},{}], not showing the values.像这样 [{},{}],不显示值。

Here is my JS code.这是我的 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>

Can anyone help here what i'm doing mistake here?谁能帮助我在这里做错了什么?

Thanks in advance.提前致谢。

 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>

See this.看到这个。

I push the value to the list separately and it is working as you expect the result into two arrays [{},{}]我将值单独推送到列表中,它按您预期的那样工作,结果进入两个 arrays [{},{}]

<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 -->

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM