API数据:无法读取null

时间:2019-10-14 02:07:49

标签: javascript

我正在从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}`));

1 个答案:

答案 0 :(得分:0)

在尝试slice之前先评估出生日期的简单逻辑语句将解决此问题:

`Born: ${data[i].BirthDate ? data[i].BirthDate.slice(0, 10) : 'Unknown'}`

这称为三元运算符,本质上是简写if/else。您可以在here

上查看一些文档。