startsWith不是一个我无法理解的函数

Sam*_*tar 3 javascript

我有这个代码:

for (var i = 0; i < value.length; i++) {
   if (typeof value[i].keyword == 'undefined' || value[i].keyword == null || value[i].keyword.startsWith(keyword)) {
      out.push(value[i]);
   }
}
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

TypeError:r [e] .startsWith不是函数js-cf2cc68 ... .min.js.gz:85 at fn(eval at compile(js-cf2cc68 ... .min.js.gz:8),:4:1003 )at js-cf2cc68 ... .min.js.gz:7 at p.$ digest(js-cf2cc68 ... .min.js.gz:7)at p.$ apply(js-cf2cc68 ... .min.js.gz: 7)在HTMLBodyElement.(JS-cf2cc68 ... .min.js.gz:9)

这怎么可能?我想我已经占了一切.

kev*_*net 6

value [i] .keyword.startsWith("keyword")因为start with的参数必须是字符串.这样做会更好

for (var i = 0; i < value.length; i++) {
     if (typeof value[i].keyword == String(undefined) || value[i].keyword.startsWith("keyword"))
         out.push(value[i]);
}
Run Code Online (Sandbox Code Playgroud)


Sam*_*mra 5

找到一篇关于该主题的有用文章

\n\n

转换为字符串的三种方法是:

\n\n
    \n
  1. value.toString()
  2. \n
  3. “”+值
  4. \n
  5. 字符串值)
  6. \n
\n\n

这里要注意的一点是,如果值为 null 或未定义,则方法#1 不起作用。

\n\n

就我而言,由于某种原因,方法#2也不起作用,所以最好的选择是 String(value)

\n\n
var col = "rt_" + rows[i]["results"][r].ResultTypeID.substring(1); //did not work\n\nvar col = "rt_" + String(rows[i]["results"][r].ResultTypeID).substring(1);\n
Run Code Online (Sandbox Code Playgroud)\n