繁体   English   中英

Javascript对象数组 - 如何循环并获取对象值

[英]Javascript Array of objects - how do i loop through and get the object values

我有一些问题在javascript中创建一个对象数组

请看下面的代码并告诉我哪里出错了..

我只是想循环并访问值

<!-- Read XML Script -->
<script type="text/javascript">

    // Object array
    var myArray = [];

    $(document).ready(function () {
        $.ajax({
            type: "GET",
            url: "HighScore.xml",
            dataType: "xml",
            success: function (xml) {
                $(xml).find('challenger').each(function () {

                    var name = $(this).find('Name').text();
                    var watts = $(this).find('Watts').text();
                    var Mins = $(this).find('Mins').text();

                    // objects in the array
                    challenger = new Object();
                    challenger.name = name;
                    challenger.watts = watts;
                    challenger.Mins = Mins;

                    myArray.push(challenger);

                });

                // look into the array
                for (obj in myArray) {
                    // do i need to cast ?? how can i view the object ??
                    alert(obj + " - ");
                }


            },
            error: function () {
                alert("error");
            }
        });
    });

</script>

for .. in ..在javascript for .. in ..工作方式与其他语言不同。 而不是对象,你将获得密钥。 因此,在您的数组中,您将获得索引。

对于迭代数组,只需使用基于索引的数组来避免麻烦:

for (var ix = 0; ix < myArray.length; ix++) {
    var obj = myArray[ix];

    alert(obj.name);
}

如果你真的想使用for .. in ..语法,请使用:

var a = ['jan', 'klaas']; 
for(var key in a) { 
    if (a.hasOwnProperty(key)) { 
        console.log(a[key].name); 
    }
}
-                for (obj in myArray) {
-                    // do i need to cast ?? how can i view the object ??
-                    alert(obj + " - ");
-                }

+                for (var i = 0; i < myArray.length; i++) {
+                    var obj = myArray[i];
+                    // do i need to cast ?? how can i view the object ??
+                    alert(JSON.stringify(obj, null, '  '));
+                }

暂无
暂无

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

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