我有一个对象,写如下:
var color = "darkred";
var source = "person1"; //this is generated elsewhere and changes
var target = "work23"; //this is generated elsewhere and changes
link = {
color: color,
source: source,
target: target,
value:1
}
此对象被添加到数组中,如下所示,该函数旨在首先检查它是否已存在于数组中:links
var links = [];
function person_linker(link) {
for (var key in links) {
if (links[key].source === link.source && links[key].target === link.target) {
}
else
{
links.push(link);
}
}
}
我遇到的问题是它似乎并没有真正执行此检查,而只是为其中有多少键添加对象。我读到的所有内容都表明,编写 if 语句就是进行这种检查的方式,但大多数信息都假设你只追求每个键的一个值。很明显,&&不是要走的路,但是我已经尝试将两者分开,执行find,indexOf和filter语句,但似乎没有任何效果。从技术上讲,代码返回了我想要的内容,但由于它允许添加多个对象,因此在执行检查时会占用内存并创建虚假条目 - 可能会向对象添加数万行。我在这里做错了什么?我确信这是一个简单的修复,但我一辈子都无法弄清楚Javascript想要什么。linklinkslinklinks
catspeake
相关分类