2012-11-03 36 views
5

Javascript'te bir dizi nesne var. Buna benzer bir şey: ben sadece bir varsaNesnede var mı yoksa javascriptte mi var

var objectArray = [ 
     { "Name" : "A", "Id" : "1" }, 
     { "Name" : "B", "Id" : "2" }, 
     { "Name" : "C", "Id" : "3" }, 
     { "Name" : "D", "Id" : "4" } 
    ]; 

Şimdi ben belirli bir özellik Name değerine sahip bir nesne inArray gibi inşa fonksiyonunda yoluyla dizide olup olmadığını Bu bulmaya çalışıyorum, vb indexOf Anlamı string C dizgisi dizininin C dizilimi var mı, yoksa indexOf, inArray vb. gibi dahili işlevler kullanılarak var olup olmadığını kontrol etmek mümkün mü?

objectArray.indexOf({ "Name" : "C", "Id" : "3" }); 

Daha iyi bir yaklaşım basitçe diziyi sürekli tekrarlanması olacaktır, ancak indexOf kullanmalısınız, bu bunu görecektir:

+0

kontrol edin bu : - http://stackoverflow.com/questions/4587061/how-to-determine-if-object-is-in-array –

+0

Bunu jquery inArray ile nasıl başarabilirsiniz? – agDev

cevap

7

yerine Rahul Tripathi gelen açıklama bağlantılı cevaba benzer kullanılması endeksi, ben çekmeye değiştirilmiş bir versiyonunu kullanmak: gibi

iterasyon yaklaşımı olmazdı nesneye göre tüm nesneyi geçmek yerine isim.

function pluckByName(inArr, name, exists) 
{ 
    for (i = 0; i < inArr.length; i++) 
    { 
     if (inArr[i].name == name) 
     { 
      return (exists === true) ? true : inArr[i]; 
     } 
    } 
} 

Kullanımı

// Find whether object exists in the array 
var a = pluckByName(objectArray, 'A', true); 

// Pluck the object from the array 
var b = pluckByName(objectArray, 'B'); 
1

Sen deneyebilirsiniz.

var inArray = false; 
for(var i=0;i<objectArray.length;i++){ 
    if(objectArray[i]["Name"] == "C"){ 
     inArray = true; 
    } 
} 
6
var found = $.map(objectArray, function(val) { 
    if(val.Name == 'C') alert('found'); 
});​ 

Demo

0

Eh, nesne çok büyük değil ise, yineleme düşünebilir ve özellikle nesne aşağıda gibi varsa maç bulmak için: dışarı

//The Object 
var objectArray = [ 
    { "Name" : "A", "Id" : "1" }, 
    { "Name" : "B", "Id" : "2" }, 
    { "Name" : "C", "Id" : "3" }, 
    { "Name" : "D", "Id" : "4" } 
]; 


//Function to check if object exist with the given properties 
function checkIfObjectExist(name,id) 
{ 
for(var i=0;i<objectArray.length;i++) 
{ 
    if(objectArray[i].Name===name && objectArray[i].Id===id) 
    {  
     return true; 
    } 
}  
} 

// Test if function is working 
console.log(checkIfObjectExist("B","2")); 
İlgili konular