我正在从SportsData NBA API获取数据,我想要有关球员的信息。 API以以下格式返回数据:
BirthCity: "Sao Carlos"
BirthCountry: null
BirthDate: "1982-09-13T00:00:00"
BirthState: "Brazil"
College: null
等
您可以看到整个BirthDate不是我真正想要的,我只想要日期部分,不包括T00:00:00
li.appendChild(
document.createTextNode(
`Born: ${data[i].BirthDate.slice(0, 10)} in ${data[i].BirthCity}, ${
data[i].BirthState
}`
)
);
我尝试用slice修复此问题,但问题是并非所有播放器都有BirthDate可用,并且其中有些BirthDate返回null。因此,一旦我到达BirthDate为null的第一个玩家,它就会停止工作,而我只会让其BirthDate为null的那个玩家晋升。
我收到此错误:未捕获(按承诺)TypeError:无法读取null的属性“ slice” 在app.js:64
此外,如果一所大学为空,那么我怎么能说那个球员没有上大学而不是得到空?
我使用这行代码来获得大学的学位:
li.appendChild(document.createTextNode(`College: ${data[i].College}`));
答案 0 :(得分:0)
在尝试slice
之前先评估出生日期的简单逻辑语句将解决此问题:
`Born: ${data[i].BirthDate ? data[i].BirthDate.slice(0, 10) : 'Unknown'}`
这称为三元运算符,本质上是简写if/else
。您可以在here