【问题标题】:If object has a value that contains text如果对象的值包含文本
【发布时间】:2015-02-13 21:32:07
【问题描述】:

我正在尝试查看对象中的任何属性是否包含值。到目前为止,我尝试过的所有事情都给出了错误TypeError: undefined is not a function

for (var prop in obj) {
                var objProp= obj[prop];
                var testone = obj.indexOfPropertyValue(prop,query);
                var testtwo= obj[prop].indexOf(query);
                var testthree = objProp.indexOf(query);
            }

【问题讨论】:

  • 控制台在尝试运行我尝试过的任何内容时都会给出“TypeError: undefined is not a function”。

标签: javascript object properties


【解决方案1】:

并非所有事物都有 indexOf 方法。

所以在使用它之前检查属性是一个字符串

for (var prop in obj) {
  if( obj.hasOwnProperty( prop ) && typeof obj[prop] === "string") {
      console.log(obj[prop].indexOf(query));
  }
}

或者你可以检查一下它是否支持indexOf

if( obj.hasOwnProperty( prop ) && obj[prop].indexOf)

【讨论】:

  • 那行得通。不敢相信我没想过做那样的事情。
猜你喜欢
  • 2020-11-13
  • 2023-04-01
  • 2016-12-23
  • 2017-07-15
  • 1970-01-01
  • 2021-02-13
  • 2011-02-04
  • 1970-01-01
  • 2020-10-09
相关资源
最近更新 更多