TypeError: sportsRecord.find is not a function

TypeError: sportsRecord.find is not a function

更新答案1:

嗨,我用记录和控制台更新问题

sportsRecord = {
        playerTigers:[
            {TigerNo: 237, TigerName: "Bird Bay Area", TigerkGroupNo: 1, isDefault: true, futureAccessDays: ""},
            {TigerkNo: 238, TigerName: "Bird California", TigerkGroupNo: 1, futureAccessDays: ""},
            {TigerkNo: 239, TigerName: "Bird Washington", TigerkGroupNo: 1, futureAccessDays: ""},
            {TigerNo: 240, TigerName: "Bird Philadelphia", TigerkGroupNo: 1, futureAccessDays: ""},
            {TigerNo: 241, TigerName: "TCN", TigerkGroupNo: 1, futureAccessDays: ""},
            {TigerNo: 242, TigerName: "Bird Chicago", TigerkGroupNo: 1, futureAccessDays: ""},
            {TigerNo: 243, TigerName: "Bird Boston", TigerkGroupNo: 1, futureAccessDays: ""},
            {TigerNo: 244, TigerName: "Bird Northwest", TigerkGroupNo: 1, futureAccessDays: ""}
        ]
}


console.log(sportsRecord instanceof Array); ---> false
console.log(sportsRecord.length) ---> undefined
TypeError: sportsRecord.find is not a function
    at birdLionUpdate.setTigers (bird-Lion-update.ts:981)
    at SafeSubscriber.eval [as _next] (bird-Lion-update.ts:367)
   setTigers(sportsRecord: any) {

        let that = this;
        let tempObj = {};
        //tempObj['TigerNo'] = 237;
        //tempObj['Lion'] = getDefault(playermoons).Lion

       // tempObj['TigerNo'] = this.getDefault(sportsRecord).TigerNo;
        let defauktTigerNOsportsRecord =  sportsRecord.find((elem) => { return elem.isDefault; });




        tempObj['TigerNo'] = sportsRecord.playerTigers[0].TigerNo;
        tempObj['TigerName'] = 'Nail Sports Bay Area';
        // tempObj['TigerNo'] = sportsRecord.selectedTigerNo;
        // tempObj['TigerName'] = sportsRecord.selectedTigerName;
        this.TigerTempArray = [];
        this.TigerTempArray.push(tempObj);
        let TigerssportsRecord = sportsRecord.playerTigers;
        let TigerssportsRecordList = this.TigerTempArray;
        let selectedTiger = TigerssportsRecord.find(elem => elem.TigerNo == 237);
        this.playerLionUpdateVal.TigerNo = 237;
        // let selectedTiger = TigerssportsRecord.find(elem => elem.TigerNo == sportsRecord.selectedTigerNo);
        // this.LionCreateVal.TigerNo = sportsRecord.selectedTigerNo;
        this.selectedTigerArr = selectedTiger;
        this.TigerCarousel.setTigersportsRecord(TigerssportsRecord, TigerssportsRecordList, 237);
        //this.TigerCarousel.setTigersportsRecord(TigerssportsRecord, TigerssportsRecordList, sportsRecord.selectedTigerNo);
        $("#TigerCarouselLabel .TigerHint").css("display", "none");
        setTimeout(function () {
            $("#unSelectedTigersLogoBox1 .currentNwLogo").bind("click", function (e) {
                e.stopPropagation();
                that.singleSelection(sportsRecord, e);
            });
        }, 100);
    }T

似乎 sportsRecord 是空的或其中没有任何元素。

您可以添加支票作为

if(sportsRecord && sportsRecord.length > 0){
 let defauktTigerNOsportsRecord =  sportsRecord.playerTigers.find((elem) => { return elem.isDefault; });
}

要么 sportsRecord 没有以数组形式出现,要么您的浏览器版本不支持 Array.find() api。如果您怀疑这一点,请查看 mozilla 文档底部的兼容性 table https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

顺便说一下,MDN 是学习 JS 和进阶时的绝佳资源。

要仔细检查 sportsRecord 是一个数组,请尝试在该行之前登录到控制台,如下所示:

console.log(sportsRecord instanceof Array);
let defauktTigerNOsportsRecord =  sportsRecord.find((elem) => { return elem.isDefault; });
...