2012-11-03 8 views
5

मेरे पास जावास्क्रिप्ट में ऑब्जेक्ट्स की एक सरणी है। इस के समान कुछ:पता कैसे लगाएं कि वस्तु सरणी में मौजूद है या नहीं जावास्क्रिप्ट

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

अब मैं पता लगाने के लिए एक दिया संपत्ति Name मूल्य के साथ एक वस्तु सरणी में inArray की तरह बनाया गया समारोह में के माध्यम से नहीं मौजूद है या फिर कोशिश कर रहा हूँ, indexOf आदि मतलब अगर मैं केवल एक है स्ट्रिंग C यह जांचना संभव है कि संपत्ति के साथ एक ओबेजट नाम सी सरणी में मौजूद है या नहीं, इंडेक्सऑफ, इनएरे आदि जैसे अंतर्निहित कार्यों का उपयोग करने के साथ?

+0

इस बाहर की जाँच करें : - http://stackoverflow.com/questions/4587061/how-to-determine-if-object-is-in-array –

+0

आप jquery inArray के साथ इसे कैसे प्राप्त कर सकते हैं? – agDev

उत्तर

7

के बजाय का उपयोग सूचकांक, राहुल त्रिपाठी से टिप्पणी जुड़ा हुआ जवाब देने के लिए इसी तरह की है, मैं खींचने के लिए एक संशोधित संस्करण का प्रयोग करेंगे:

यात्रा दृष्टिकोण कैसा लगेगा पूरे ऑब्जेक्ट को पास करने के बजाए नाम से ऑब्जेक्ट।

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

प्रयोग

// 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

आप की कोशिश कर सकते:

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

एक बेहतर दृष्टिकोण बस सरणी पर पुनरावृति करने के लिए हो सकता है, लेकिन अगर आप indexOf का उपयोग करना चाहिए, यह कैसे आप यह कर होता है।

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

ठीक है, अगर वस्तु बहुत बड़ा नहीं है, तो आप पुनरावृति विचार कर सकते हैं और यदि विशेष वस्तु नीचे की तरह मौजूद मैच खोजने के लिए:

//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")); 
संबंधित मुद्दे