javascript - 在 : Losing type of object when passed from Array? 中

标签 javascript

我正在将特定类型的对象传递给数组。 当我从外部引用打印对象时,我可以看到所有字段。 当我从数组引用中打印相同的对象时,我几乎看不到任何对象。

为了解释,这里是说明问题的代码:

var test = new OpenLayers.Layer.Vector();

var array = [test];

console.log("******* Printing Test directly ***************");
printObjectProperties(test);

console.log("****** Printing Test from array **************");
for (obj in array){
    printObjectProperties(obj);     
}

printObjectProperties() 函数:

function printObjectProperties(eventData) {
        for (var prop in eventData) {
            if (!(typeof (eventData[prop]) == "undefined")) {
                console.log(prop + " = " + eventData[prop]);
            }
        };
}

完整代码(完整的html文件,大家可以自行运行在浏览器控制台日志中查看): ( live example )

<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script>

    $(document).ready(function(){

        var test = new OpenLayers.Layer.Vector();

        var array = [test];

        console.log("******* Printing Test directly ***************");
        printObjectProperties(test);

        console.log("****** Printing Test from array **************");
        for (obj in array){
            printObjectProperties(obj);     
        }

    });


function printObjectProperties(eventData) {
        for (var prop in eventData) {
            if (!(typeof (eventData[prop]) == "undefined")) {
                console.log(prop + " = " + eventData[prop]);
            }
        };
}

</script>
</html>

最佳答案

for in 循环中,第一个变量 (obj) 是键。在作为索引的数组中。

所以基本上您是在 printObjectProperties 中迭代一个数字。因此 0 = 0,因为您的数组(您有一个元素)的第一个索引是 0

改用这个:

printObjectProperties(array[obj]);

这将评估为:

printObjectProperties(array[0]);

或:

printObjectProperties(test);

关于javascript - 在 : Losing type of object when passed from Array? 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981339/

相关文章:

javascript - 像素网格上的递归填充函数?

javascript - MVC : Share Javascript file between projects in the same solution

Javascript XMLHttpRequests 循环?

JavaScript 与 jQuery 数学行为?

javascript - jqPlot 图表——不显示 ajax 数据

javascript - 如何将 JSON 数据存储为 JavaScript 表格式?

javascript - jQuery 'not' 函数给出虚假结果

javascript - 可以将 math.max 用于对象数组吗?

javascript - 三.CurvePath和自定义标记

javascript - 表格 : Show entry after a click below a form