Tengo una matriz:
const aContracts = [[ '0x8ae127d224094cb1b27e1b28a472e588cbcc7620', 0 ], [ '0xcbf4ab00b6aa19b4d5d29c7c3508b393a1c01fe3', 0 ], [ '0x03cd191f589d12b0582a99808cf19851e468e6b5', 0 ], [ '0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a', 1 ]]Y estoy tratando de filtrar usando el segundo elemento en cada subconjunto. Así que usé:
const aGoodContracts = aContracts.filter(contracts => contracts[1]===1);
Y obtengo:
[["0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a", 1]]
Sin embargo, quiero [EDITAR quiero una matriz de todos los contratos "buenos"]:
"0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a"
Así que probé una solución que encontré aquí : const aGoodContracts = aContracts.map(k => k.filter(contracts => contracts[1]===1));
Pero obtengo:
[[], [], [], []]
¿Qué me estoy perdiendo?
Simplemente map() su resultado para seleccionar el primer elemento en la matriz. Esto lo dejará con una matriz, y si solo desea el primer valor (como su salida esperada), tome el elemento de índice cero.
const aContracts = [[ '0x8ae127d224094cb1b27e1b28a472e588cbcc7620', 0 ], [ '0xcbf4ab00b6aa19b4d5d29c7c3508b393a1c01fe3', 0 ], [ '0x03cd191f589d12b0582a99808cf19851e468e6b5', 0 ], [ '0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a', 1 ]] const aGoodContracts = aContracts.filter(contracts => contracts[1]===1).map(c => c[0]); console.log(aGoodContracts); console.log(aGoodContracts[0]);Puedes probar esto
const aContracts = [[ '0x8ae127d224094cb1b27e1b28a472e588cbcc7620', 0 ], [ '0xcbf4ab00b6aa19b4d5d29c7c3508b393a1c01fe3', 0 ], [ '0x03cd191f589d12b0582a99808cf19851e468e6b5', 0 ], [ '0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a', 1 ]] const aGoodContracts = aContracts.filter(contracts => contracts[1]===1)[0] console.log(aGoodContracts[0])