Javascript数组长度为0的非空数组

Javascript数组长度为0的非空数组,javascript,knockout.js,Javascript,Knockout.js,我正在使用knockout js创建一个带有搜索功能的列表 console.log的结果: 正如您所看到的,数组中假定有5个对象,但是proto中有0个。我不明白怎么回事 var iniList = [ new Spot("Park"), new Spot("High School"), new Spot("Soccer Stadium"), new Spot("Railway Station"), new Spot("Hospital") ]; v

我正在使用knockout js创建一个带有搜索功能的列表

console.log的结果:

正如您所看到的,数组中假定有5个对象,但是proto中有0个。我不明白怎么回事

var iniList = [
    new Spot("Park"),
    new Spot("High School"),
    new Spot("Soccer Stadium"),
    new Spot("Railway Station"),
    new Spot("Hospital")
];


var viewModel = {
    spots: ko.observableArray(iniList),
    filter: ko.observable(''),
    search: function(value) {
        console.log(iniList);

        viewModel.spots.removeAll();
        for (x = 0; x < iniList.length; x++) {
            console.log("iniList[x]");
            if (iniList[x].name.toLowerCase().indexOf(value.toLowerCase()) >= 0) {
                viewModel.spots.push(iniList[x]);
            }
        }
    }
};
var-iniList=[
新景点(“公园”),
new Spot(“高中”),
新地点(“足球场”),
新地点(“火车站”),
新地点(“医院”)
];
var viewModel={
地点:ko.observableArray(InList),
过滤器:ko.可观察(“”),
搜索:函数(值){
控制台日志(iniList);
viewModel.spots.removeAll();
对于(x=0;x=0){
viewModel.spots.push(iniList[x]);
}
}
}
};

您正在运行“viewModel.spots.removeAll();”这将删除可观察数组的所有元素

另请参见:“所有这些函数都相当于在底层数组上运行本机JavaScript数组函数,然后将更改通知侦听器”@squint yes,因为它从未进入for循环,我试图理解原因