执行循环内部函数定义

时间:2017-06-08 07:03:36

标签: javascript function loops

在我的一个项目中,我使用API​​从其他网站获取数据,但是为了得到所有数据,我需要用两个不同的变量来编写8个相同代码的块。显然我想定义函数并使用它。

函数有两个参数,一个是对象,另一个是id。在函数内部,我遍历对象以使用object.length获取我需要的所有数据。循环在函数定义中执行,我在控制台中出现Uncaught TypeError: Cannot read property 'length' of undefined错误。

这是我的代码:

function listAll(objectProp, destination) {
    for (var i = 0; objectProp.length > i; i++ ) {
        var option = document.createElement("option");
        var value = document.createTextNode(objectProp.name);
        option.appendChild(value);
        document.getElementById(destination).appendChild(option);
    }
}

我一直在寻找解决方案,但我找不到同样的问题。任何人都可以向我解释为什么会这样吗?

谢谢!

更新 代码应该是这样的。

function listAll(objectProp, destination) {
    if ( typeof(objectProp) != 'undefined' ) {
        for (var i = 0; objectProp.length > i; i++ ) {
            var option = document.createElement("option");
            var value = document.createTextNode(objectProp[i].name);
            option.appendChild(value);
            document.getElementById(destination).appendChild(option);
        }
    }
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用.length无法在JavaScript中获取对象的长度。您需要将数据存储在数组中或使用此解决方案:Length of a JavaScript object