我遇到以下错误:


  未捕获的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);引起的,但我不确定为什么会发生这种情况。

最佳答案

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

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


最后传递的参数是Kkordinaadid,但先前定义为

var Kkordinaadid = {};


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

var Kkordinaadid = [];

10-07 12:49