Tengo esa matriz de dict:
arrayDict: [ { Description: "Dict 0" Category: [ 'First', 'Both', ], }, { Description: "Dict 1", Category: [ 'Second', 'Both', ], }, ]me gustaría filtrar dentro de esa matriz por Categoría. Recibiré una categoría y necesito filtrar. Si recibo "Ambos", necesito devolver "Dict 1" y "Dict 0". si recibo "Segundo", devuelvo solo "Dict 1".
¿Cómo puedo hacer eso?
Puede lograr su objetivo utilizando el método de filtro , como este:
const arrayDict = [ { Description: "Dict 0", Category: [ 'First', 'Both', ], }, { Description: "Dict 1", Category: [ 'Second', 'Both', ], }, ]; const filterDict = (key)=> arrayDict.filter(({Category}) => Category.includes(key)) console.log('First:',filterDict('First')); console.log('Second:',filterDict('Second')); console.log('Both:',filterDict('Both'));algo como esto:
arrayDict.filter((item)=> item.Category.includes('Both'))simplemente puede usar el filter() : función de orden superior proporcionada por JS.
var arrayDict = [ { Description: "Dict 0", Category : [ 'First', 'Both', ] }, { Description: "Dict 1", Category : [ 'Second', 'Both', ], }, ] let input = 'Both'; let filteredData = arrayDict.filter((elm) => { return elm.Category.includes(input) }) console.log(filteredData);