我有 2 个 JS 数组,我正在遍历它们以找到相似的数组。
anomalies.forEach(function(anomaly) {
links.forEach(function(link) {
if ((link.source.name === anomaly.source) && (link.target.name === anomaly.target)) {
console.log("anomaly");
link.type = "anomaly";
console.log(link);
} else {
link.type = "normal";
}
});
});
console.log(links);
在link.type
的值应该是"anomaly"
的情况下,它仍然反射(reflect)为"normal"
。
为什么会这样,应该怎么办?
最佳答案
我是一个算法错误。在提供的屏幕截图中,type="normal"
是对象的当前值。
考虑:
Loop1
Loop2
condition
如果链接对象满足 loop2
中的条件,则为其类型值分配 “异常”
。但是当 loop1
的下一次迭代发生时,并且不满足同一链接对象的条件,则该值被分配为 “normal”
。因此这是一个算法错误。
关于javascript对象没有被分配正确的成员值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29628349/