Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 执行函数定义内的循环_Javascript_Function_Loops - Fatal编程技术网

Javascript 执行函数定义内的循环

Javascript 执行函数定义内的循环,javascript,function,loops,Javascript,Function,Loops,在我的一个项目中,我使用API从其他网站获取数据,但要获取所有数据,我需要用两个不同的变量编写8块相同的代码。显然,我想定义函数并使用它 函数有两个参数,一个是object,另一个是id。在函数中,我使用object.length循环对象以获得我需要的所有数据。循环在函数定义内执行,我得到uncaughttypeerror:无法在控制台中读取未定义的错误的属性“length” 这是我的密码: function listAll(objectProp, destination) { for

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

函数有两个参数,一个是object,另一个是id。在函数中,我使用object.length循环对象以获得我需要的所有数据。循环在函数定义内执行,我得到
uncaughttypeerror:无法在控制台中读取未定义的
错误的属性“length”

这是我的密码:

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);
        }
    }
}

谢谢你的帮助

使用
.length
无法在JavaScript中获取对象的长度。您需要将数据存储在一个数组中,或者使用这样的解决方案:

确保传递给函数的变量是实际实例化的,并且不是
未定义的
,在调用函数之前,将第一个参数记录到控制台。您可以执行一个简单的检查
if(typeof(objectProp)!=“undefined”){
谢谢大家!这有帮助!我以前试过,但后来什么也没发生。原来我在调用函数时丢失了一个字母!对不起,我说得不够具体。在该对象中有一个数组,我在其上使用.length