Mi matriz se ve así:
array = [object {id: 1, value: "itemname"}, object {id: 2, value: "itemname"}, ...]todos mis objetos tienen los mismos atributos, pero con diferentes valores.
¿Hay alguna manera fácil de usar una instrucción WHERE para esa matriz?
Tome el objeto donde object.id = var
¿O solo necesito recorrer toda la matriz y verificar cada elemento? Mi matriz tiene más de 100 entradas, por lo que quería saber si había una forma más eficiente
Utilice Array.find :
let array = [ { id: 1, value: "itemname" }, { id: 2, value: "itemname" } ]; let item1 = array.find(i => i.id === 1);Array.find en MDN: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find
let array = [ { id: 1, value: "itemname" }, { id: 2, value: "itemname" } ]; let item1 = array.filter(item => item.id === 1)[0]; let item2 = array.reduce((prev, current) => prev || current.id === 1 ? current : null); console.log(item1); // Object {id: 1, value: "itemname"} console.log(item2); // Object {id: 1, value: "itemname"}( código en el patio de recreo )
Si le importa iterar sobre toda la matriz, use algunos :
let item; array.some(i => { if (i.id === 1) { item = i; return true; } return false; });Puede buscar un determinado valor en una matriz de objetos usando TypeScript dinámicamente si necesita buscar el valor de todos los campos del objeto sin especificar la columna
var searchText = 'first'; let items = [ { id: 1, name: "first", grade: "A" }, { id: 2, name: "second", grade: "B" } ]; This below code will search for the value var result = items.filter(item => Object.keys(item).some(k => item[k] != null && item[k].toString().toLowerCase() .includes(searchText.toLowerCase())) );Se puede usar el mismo enfoque para hacer una tubería de filtro de búsqueda en angularjs 4 usando TypeScript