tengo un problema con el código, no sé cómo optimizar el código para que funcione para cada nueva "persona" en el objeto.
customers_data={ 'Ben10': [22, 30, 11, 17, 15, 52, 27, 12], 'Sameer': [5, 17, 30, 33, 40, 22, 26, 10, 11, 45], 'Zeeshan': [22, 30, 11, 5, 17, 30, 6, 57] } var count = 0 for (let e of customers_data.Ben10) { if (e >= 20) count ++} if (count >= 5) {console.log("Ben10 has Premium Membership")} count = 0 for (let e of customers_data.Sameer) { if (e >= 20) count ++} if (count >= 5) {console.log("Sameer has Premium Membership")} count = 0 for (let e of customers_data.Zeeshan) { if (e >= 20) count ++} if (count >= 5) {console.log("Zeeshan has Premium Membership"); count = 0} count = 0 customers_data={ 'Ben10': [22, 30, 11, 17, 15, 52, 27, 12], 'Sameer': [5, 17, 30, 33, 40, 22, 26, 10, 11, 45], 'Zeeshan': [22, 30, 11, 5, 17, 30, 6, 57] } var count = 0 for(let prop in customers_data) { for (let e of customers_data[prop]) { if (e >= 20) count ++} if (count >= 5) {console.log(prop + " has Premium Membership")} count = 0 }Usa dos bucles. Exterior a name => values , interior a valores de bucle
let customers_data = { 'Ben10': [22, 30, 11, 17, 15, 52, 27, 12], 'Sameer': [5, 17, 30, 33, 40, 22, 26, 10, 11, 45], 'Zeeshan': [22, 30, 11, 5, 17, 30, 6, 57] } for (let dataKey in customers_data) { let count = 0; for (let value of customers_data[dataKey]) { if (value >= 20) { count++; } } if (count >= 5) { console.log(dataKey + " has Premium Membership"); } }Puede SECAR esto un poco usando una función en la que pasa los datos y el nombre que desea verificar, y luego devuelve un mensaje basado en el resultado.
const customers_data = { Ben10: [22, 30, 11, 17, 15, 52, 27, 12], Sameer: [5, 17, 30, 33, 40, 22, 26, 10, 11, 45], Zeeshan: [22, 30, 11, 5, 17, 30, 6, 57] } // Accept data and a name function hasMembership(data, name) { // `filter` out the numbers that are greater // or equal to 20 const greaterThan20 = data[name].filter(entry => { return entry >= 20; }); // If the length of the filtered array is // greater or equal to five, return a positive message if (greaterThan20.length >= 5) { return `${name} has Premium Membership!`; } // Otherwise return something else return `Boo. No membership for ${name}.`; } console.log(hasMembership(customers_data, 'Ben10')); console.log(hasMembership(customers_data, 'Sameer')); console.log(hasMembership(customers_data, 'Zeeshan'));Documentación adicional