2012-11-03 2 views
5

자바 스크립트에 개체 배열이 있습니다. 이와 유사한 뭔가 : 내가 만있는 경우개체가 배열에 있는지 여부를 찾는 방법 javacript

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

지금은 주어진 특성 Name 값을 가진 객체가 inArray 같은 내장 함수를 통해 배열에 존재하는지 여부를 확인하기 위해 노력하고 등 indexOf 수단 문자열 C indexOf, inArray 등과 같은 inbuilt 함수를 사용하여 속성 이름이 C 인 객체가 배열에 존재하는지 여부를 확인할 수있는 것보다?

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

더 나은 방법은 단순히 배열을 반복하는 것입니다,하지만 당신은 같이 IndexOf를 사용해야하는 경우, 이것은 당신이 어떻게 할 것입니다 :

+0

확인이 :-) http://stackoverflow.com/questions/4587061/how-to-determine-if-object-is-in-array –

+0

어떻게 jquery inArray를 사용하여이 작업을 수행 할 수 있습니까? – agDev

답변

7

보다는 라훌 Tripathi에서 주석 링크 대답 유사한 사용 지수는, 내가 끌어 수정 된 버전을 사용 : 같은

반복 해 접근 방식은 보일 것이다 객체 전체를 전달하는 것이 아니라 이름으로 객체를 반환합니다.

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

당신은 시도 할 수 있습니다.

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")); 
관련 문제