在Javascript中对indexOf的使用

时间:2014-07-08 04:30:08

标签: javascript d3.js

我有一个json文件,格式如下所示。下面的代码行抛出错误说" Uncaught TypeError:无法读取属性' indexOf'未定义"

link.style("stroke", function (d) {

    // userID has visited this link
    if (d.user_ids.indexOf(userID) != -1)
       return "red";
}

"links" :
[

{"source" : 2, "source_id" : "1035", "target" : 12, "target_id" : "1015", "user_ids" : [7409,7957,16367]} 

]

我实际上正在获取用户ID的用户输入,并在包含节点和链接的d3强制布局中突出显示用户路径。如何克服这个问题?

1 个答案:

答案 0 :(得分:-1)

如果没有看到行为的麻烦,很难弄清问题是什么。

您列出的代码很好,没有什么可以导致问题。

我的猜测是你在列表中有一个不包含user_ids属性的对象,导致该对象未定义。

尝试添加以下代码:

if(d.hasOwnProperty('user_ids')) {
  if (d.user_ids.indexOf(userID) != -1)
    return "red";
}

希望这有帮助。