No estoy seguro de cómo abordar este problema, pero quiero ver si dos valores están en la misma 'línea'
var inventory_needed = [ { section: "hardware", supplies: "hammers" }, { section: "plumbing", supplies: "pipes" }, { section: "garden", supplies: "grass seeds" }, { section: "cleaning supplies", supplies: ["hand sanitizer", "detergent"] }, { section: "appliances", supplies: ["fridges", "dishwashers"] } ];pseudocódigo de lo que quiero intentar intentar
if(section.value && supplies.value in the same line) { return true; } else { return false; } //example 1 if("appliances" && "fridges" in the same line) { return true; //would return true } else { return false; } //example 2 if("plumbing" && "fridges" in the same line) { return true; } else { return false; //would return false }Por en la misma línea, parece querer decir definido dentro del mismo objeto en la matriz. Si eso es correcto, la forma de hacerlo es así:
function inTheSameLine(section, supplies){ return inventory_needed.some(obj => { return obj.section === section && ( obj.supplies === supplies || ( Array.isArray(obj.supplies) && obj.supplies.includes(supplies) ) ); }); } La función some de la matriz de JavaScript devuelve verdadero si alguno de los elementos de la matriz satisface la condición.