如果第二个对象中不存在,则从对象填充选择框

时间:2012-10-11 15:10:01

标签: javascript jquery object

抱歉蹩脚的头衔。

我有一个像这样构建的标记对象,名称为键

markers[name] = {};
markers[name].id = id;
markers[name].lat = lati;
markers[name].lng = longi;
markers[name].state = state;
markers[name].position = posi;
markers[name].selected = false;

然后我有一个名为fencesCookie的对象数组,它可能是空的也可能不是。

当它不是空的时候看起来像这样。

    [
    Object
    contact: "Vince Test"
    lat: 40.758577
    lng: -73.984464
    radius: 100
    __proto__: Object
    , 
    Object
    contact: "Vince WF"
    lat: 35.86166
    lng: 104.19539699999996
    radius: 300
    __proto__: Object
    ]

目前我为每个标记对象键填充一个选择框,如此

for (var key in markers) { // loop through markers and append the selectbox
    appendContactList(key);
}

我想对其进行编辑,以便在键(标记名称)与其中一个fencesCookie.contact条目匹配时,它不会将其添加到选择框中。

干杯

2 个答案:

答案 0 :(得分:2)

我不确定我是否正确理解了你的对象/数组结构,但我想这段代码会给你一个想法:

markerloop: for (var key in markers) {
    for (var i=0; i<fencesCookie.length; i++)
        if (fencesCookie[i].id == key)
// or is it fencesCookie[i].contact == markers[key].id ?
             continue markerloop;
    // else the key was not found
    appendContactList(key); // append the selectbox
}

答案 1 :(得分:2)

这样的事情?

for (var key in markers) { // loop through markers and append the selectbox
    var test = true;
    for(var i=0, len=fencesCookie.length;i<len;i++){
        if(key==fencesCookie[i].contact) {
            test=false;
            break;
        }
    }
    if(test) appendContactList(key);
}