在javascript中的字典数组中搜索id

pri*_*nka 4 javascript arrays dictionary

我在 JavaScript 中有一个字典数组,我想通过匹配是否找到 ID 将一个元素添加到数组中的一个字典中。如何搜索是否找到了 ID?

这是我的字典:

{ 
    priyanka: [ { socketid: 'bVLmrV8I9JsSyON7AAAA' } ],
    test: [ { socketid: 'Q2n5RzcJqPeLZ5T9AAAB' } ] } ] 
}
Run Code Online (Sandbox Code Playgroud)

我想通过搜索socketid“bVLmrV8I9JsSyON7AAAA”来添加一个元素并将一个元素添加到字典中。

小智 5

在数据的当前状态下,您至少必须使用线性搜索。

var keyToFind = 'Q2n5RzcJqPeLZ5T9AAAB';
for(var i in dictionary){
    if(dictionary[i].socketid == keyToFind){
        // Add an element to the dictionary
        break; // If you want to break out of the loop once you've found a match
    }
}
Run Code Online (Sandbox Code Playgroud)


Oli*_*y50 0

var myObject = { 
    priyanka: [ { socketid: 'bVLmrV8I9JsSyON7AAAA' } ],
    test: [ { socketid: 'Q2n5RzcJqPeLZ5T9AAAB' } ] } ] 
};

myObject.priyanka.forEach(function(item){
    if(item.socketid === 'bVLmrV8I9JsSyON7AAAA'){
        // There is a socketid equals to bVLmrV8I9JsSyON7AAAA in priyanka
        break;
    } else {
        // Socketid not found
    }
});
Run Code Online (Sandbox Code Playgroud)

请注意 Array.forEach 不完全跨浏览器兼容,也许您想使用一个简单的for循环:

for(var i=0; i < myObject.priyanka.length; i++){
    if(myObject.priyanka[i].socketid === 'bVLmrV8I9JsSyON7AAAA'){
        // There is a socketid equals to bVLmrV8I9JsSyON7AAAA in priyanka
        break;
    } else {
        // Socketid not found
    }
}
Run Code Online (Sandbox Code Playgroud)