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
- 我是js新手
- 我正在尝试迭代 json 结构。
- 当我看到 isDefault: true 时,我需要显示为默认名称。
- 我试过了,但现在出现错误。
- 你能告诉我如何解决它吗?
- 在下面提供我的相关代码。
- 代码很大,所以我粘贴到要点中
https://gist.github.com/niniyzni/5c19f385b35f9418086125799803efe7
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; });
...
更新答案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
- 我是js新手
- 我正在尝试迭代 json 结构。
- 当我看到 isDefault: true 时,我需要显示为默认名称。
- 我试过了,但现在出现错误。
- 你能告诉我如何解决它吗?
- 在下面提供我的相关代码。
- 代码很大,所以我粘贴到要点中 https://gist.github.com/niniyzni/5c19f385b35f9418086125799803efe7
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; });
...