开发者问题收集

JavaScript 中 toUpperCase 无法与对象中的项目一起使用

2020-05-16
283

我不明白为什么这会返回错误。

item.Question.toUpperCase is not a function

我在带有 react 的 expo 应用程序中收到此错误,但控制台中没有抛出任何错误

错误:

TypeError: item.Question.toUpperCase is not a function. in item.Question.toUpperCase() item.Question.toUpperCase is undefined

我尝试创建新变量为

var Question = item.Question.toUpperCase()

但似乎不起作用,所以这里是完整的代码

else if(item.Title == undefined){
        const itemData = `${item.Question.toUpperCase()} ${item.answer.toUpperCase()} ${item.keyword.toUpperCase()}`;
        const textData = search.toUpperCase();

        return itemData.indexOf(textData) > -1;

item 是一个对象,其中 Question 是一个字符串

谢谢

编辑: 因此,经过一些记录后,我发现此区域出现错误:

console.log(item.keyword,item.Title)
        console.log(typeof item.Question, item.Question)
        const itemData = `${item.Title.toUpperCase()} ${item.Question.toUpperCase()} ${item.answer.toUpperCase()} ${item.keyword.toUpperCase()}`;
        const textData = search.toUpperCase();
        console.log(typeof itemData,typeof textData)

在记录 item.Question 和类型时,我得到了数字和 NaN,这很奇怪,因为从我的数据库来看,它应该提取字符串“this is a strng10” 对数据库的所有其他调用似乎工作正常。它们将 item.Question 的正确类型指定为 String。

所以我猜我试图解决的问题是如何将字符串转换为 NaN 数字?

2个回答

这似乎对我有用。您确定您传递了正确的数据类型吗?

let item = {
  Question: "test",
  Title: undefined,
  Answer: "thing",
  Keyword: "wow"
}

if (item.Title === undefined) {
  const itemData =
      `${item.Question.toUpperCase()} ${item.Answer.toUpperCase()} ${item.Keyword.toUpperCase()}`
  itemData
}

控制台返回 “TEST THING WOW”

Andrew Ryan Davis
2020-05-16

因此,在返回到我对数据库的调用后,我在收到问题之前发现了一个额外的 +,删除它解决了这个问题。很抱歉浪费了你所有的时间。

问题出在对象内部:

Question: + childData.Question
Aatish Parson
2020-05-16