Javascript索引数组问题
Javascript indexing array issue
嗨,我有一个包含以下数字的数组,但是当我循环遍历eachNode函数(迭代13次)时,它将所有列表元素重复13次。我测试了所有东西,但它仍然产生一个错误,我执行for循环正确吗?
list[61,67,78]
var len = list.length;
fd.graph.eachNode(function (node) { // loops thru all node id's in graph (13)
for (var i = 0; i < len; ++i) {
if (i in list) {
var nody = list[i]; // I put the number in a variable
var nodess = fd.graph.getNode(nody); //this takes the number and matches it with a node id, it "odjectify" it
if (node.id != nodess.id) { // if the list nodes are not the same
node.setData('alpha', 0); //
node.eachAdjacency(function (adj) { // this make the unmatched nodes disappear
adj.setData('alpha', 0, 'end');
});
}
}
}
});
这一行不需要:
if (i in list)
如果in
关键字的右操作数包含其左操作数指定的属性,则返回true。当对数组使用此方法时,它会返回意想不到的结果。这个关键字的行为在这个上下文中是不重要的,所以你应该把它去掉。
此外,您需要像这样创建list
数组:
var list = [61, 67, 78];
…然而,当我循环通过
eachNode
(迭代13次)时,它重复所有列表元素13次
它没有,它实际上在eachNode
上迭代13次。您还创建了一个for循环,它将遍历list
数组的长度。
既然你已经给了我更多你想要的细节,这里是更新的代码。我希望它对你有用:
fd.graph.eachNode(function (node) {
var flag = false;
for (var i = 0; i < len; ++i)
{
var nody = list[i];
var nodess = fd.graph.getNode(nody);
if (node.id == nodess.id) {
flag = true; break;
}
}
if (flag)
{
node.setData('alpha', 0);
node.eachAdjacency(function (adj) {
adj.setData('alpha', 0, 'end');
});
}
});
这是设计的行为:
循环遍历图形(如你所说的13次),然后在每次迭代中循环遍历数组(3个元素)。
如果你只想在数组上循环一次,只需将其移出外部循环
相关文章:
- 将子文档推送到父数组时遇到问题
- 从数组在d3中创建条形图时出现问题
- JavaScript/jQuery JSON数组问题-值为未定义
- JavaScript变量引用数组时出现问题
- Javascript中的多维数组排序索引问题
- JavaScript对象中存在数组的问题
- array_push平面数组问题-需要能够向数组中添加多个变量
- 多维数组 JAVASCRIPT 出了点问题
- javascript中的数组和if语句存在问题
- JavaScript的循环问题,将值插入数组将不起作用
- Javascript数组比较问题
- 设置和添加数组值javascript时出现问题
- 数组有什么问题
- 在Javascript/Google Maps Api中将结果放入数组时出现问题
- 尽管使用了off,click函数仍会触发,这可能也会导致数组问题
- azure移动服务中的数组长度问题
- 将数组从PHP传递到Javascript(Jquery)的问题,如常见答案所示
- 填充对象的Javascript数组时出现问题
- JavaScript——迭代一系列问题(数组/对象)
- 表单显示问题+数组下的结果