2012-01-04 7 views
6

i tener la siguiente matriz:de verificación si objeto contiene propiedades con valor

SoftwareBadges = 
[ 
    { Title: "Playtech", Guid: "7e9", xPos: "96" }, 
    { Title: "BetSoft", Guid: "890", xPos: "169" }, 
    { Title: "WagerWorks", Guid: "35c", xPos: "242" }, 
    { Title: "Rival", Guid: "c35", xPos: "314" }, 
    { Title: "NetEnt", Guid: "59e", xPos: "387" }, 
    { Title: "MicroGaming", Guid: "19a", xPos: "460" }, 
    { Title: "Cayetano", Guid: "155", xPos: "533" }, 
    { Title: "OpenBet", Guid: "cfe", xPos: "607" }, 
    { Title: "RTG", Guid: "4e6", xPos: "680" }, 
    { Title: "Cryptologic", Guid: "05d", xPos: "753" }, 
    { Title: "CTXM", Guid: "51d", xPos: "827" }, 
    { Title: "Sheriff", Guid: "63e", xPos: "898" }, 
    { Title: "Vegas Tech", Guid: "a50", xPos: "975" }, 
    { Title: "Top Game", Guid: "0d0", xPos: "1048" }, 
    { Title: "Party Gaming", Guid: "46d", xPos: "1121" } 
] 

Ahora, necesito para comprobar si en una de ellas contiene un valor, y devolver el objeto por ejemplo:

var test = "7e9" // Guid 

¿cómo obtengo el objeto que contiene este valor de Guid? en la muestra, debe devolver el objeto PlayTech.

en C# usando LINQ que podría hacer algo como: var x = SoftwareBadges.Where(c => c.Guid == test)

¿Cómo puedo hacer esto en javascript?

+0

posible duplicado del [En Javascript, valor dado, encontrar el nombre del objeto literal] (http://stackoverflow.com/questions/4432330/in-javascript -given-value-find-name-from-object-literal) –

+0

@ nikc.org - no es un duplicado, la otra pregunta es usar una matriz en la matriz, mientras estoy usando json en la matriz. – Dementic

+1

Es cierto que no es un _exact_ duplicado, pero seguramente puede aplicar información? http://stackoverflow.com/questions/3515934/json-object-value-based-on-other-object-value http://stackoverflow.com/questions/5181493/how-to-find-a-value-in -a-multidimensional-object-array-in-javascript http://stackoverflow.com/questions/1182082/check-for-a-value-in-a-json-object –

Respuesta

8

matriz como asociativo puede probar esto:

for (var s in SoftwareBadges) { 
    if (SoftwareBadges[s]["Guid"] == "7e9") 
     alert(SoftwareBadges[s]["Title"]); 
} 
3

Array#filter puede venir a mano

(SoftwareBadges.filter(function(v) { 
    return v['Guid'] == '7e9'; 
}))[0] 

Tenga en cuenta que filter es una parte de ECMA5 y puede no estar disponible en algunos navegadores.

Puede ver https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter para obtener un documento detallado.

+0

incluso debido a que podría ser útil en el futuro lejano, una solución de navegador cruzado para estos días era necesario. – Dementic

Cuestiones relacionadas