如何解决Uncaught TypeError:undefined不是一个函数?

时间:2015-03-26 00:18:55

标签: javascript

我遇到以下错误:

  

未捕获的TypeError:undefined不是函数

我无法弄清楚是什么造成了这个错误,我已经尝试过搜索,但还没有找到合适的答案。

输入数据: algusLoppPikkus = {"第一":[58.6666,23.6666,10]"第一":[58.6866,23.6866,10]"第一":[58.6666,23.6666 ,15],"第一":[58.6666,23.6666,12]"第一":[58.6666,23.6666,12]"第一":[58.6666, 23.6666,13]"第一":[58.6666,23.6666,13]} var kohadID = [10,15,13,​​12];

var Kkordinaadid = {};

function containsObject(ac, arr1, arr2, list) {
    var i;
    if (Object.getOwnPropertyNames(list).length > 0) {
        for (i = 0; i < list.length; i++) {
            if (list[i].ID != ac) {
                var obj = {
                    "ID": ac,
                    "Coord": [arr1, arr2]
                };
                list.push(obj);
            }
        }
    } else {
        var obj = {
            "ID": ac,
            "Coord": [arr1, arr2]
        };
        list.push(obj);
    }
    console.log(list);
}



//var a = containsObject(obj, list);
for (i = 0; i < kohadID.length; i++) {
    for (j = 0; j < algusLoppPikkus.length; j++) {
        if (kohadID[i] == algusLoppPikkus[j].first[2]) {
            containsObject(kohadID[i], algusLoppPikkus[j].first[0], algusLoppPikkus[j].first[1], Kkordinaadid);
            //console.log("koht :" + kohadID[i] + "   "+ "Kordinaat :" +algusLoppPikkus[j].first[0]+" , "+algusLoppPikkus[j].first[1] + " ID : "+ algusLoppPikkus[j].first[2]);
        }
    }
}

Chrome的控制台说错误来自list.push(obj);,但我不确定为什么会这样。

1 个答案:

答案 0 :(得分:2)

问题很简单:你调用containsObject,如下所示:

containsObject(..., ..., ..., Kkordinaadid);

传递的最后一个参数是Kkordinaadid,但是之前定义为

var Kkordinaadid = {};

Object没有名为push的方法,你的意思是创建一个数组吗?

var Kkordinaadid = [];