Estoy intentando verificar si todos los grupos de edad, desde adolescentes hasta centenarios, están representados en una matriz.
Mi camino lógico ha sido:
[1, 2, 3, ... , 10]10 para obtener en qué década cae la edadparseInt ese número para obtener un número entero y colocar las cifras resultantes en una nueva matriz El resultado esperado es true , pero en su lugar obtengo false .
Otro problema lógico al que me enfrento es que la edad más antigua en la matriz de muestra, 128 , se reduce a 12 después de dividir/analizar, mientras que sería preferible verificar si el int es > 10 en lugar de específicamente 10 .
Código a continuación:
const devAges = list.map((list) => { return list.age }) const devAgesDiv = devAges.map(i => i / 10); for(i = 0; i < devAgesDiv.length; i++){ devAgesDiv[i] = parseInt(devAgesDiv[i]); } function allAges(list) { const ageBrackets = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; return ageBrackets.every((ageBracket) => list.some((listItem) => listItem.ageBracket === ageBracket) ); } console.log(allAges(list)); // output false;Ejemplo de matriz a continuación:
var list = [ { firstName: 'Harry', lastName: 'K.', country: 'Brazil', continent: 'Americas', age: 19, language: 'Python' }, { firstName: 'Kseniya', lastName: 'T.', country: 'Belarus', continent: 'Europe', age: 29, language: 'JavaScript' }, { firstName: 'Jing', lastName: 'X.', country: 'China', continent: 'Asia', age: 39, language: 'Ruby' }, { firstName: 'Noa', lastName: 'A.', country: 'Israel', continent: 'Asia', age: 40, language: 'Ruby' }, { firstName: 'Andrei', lastName: 'E.', country: 'Romania', continent: 'Europe', age: 59, language: 'C' }, { firstName: 'Maria', lastName: 'S.', country: 'Peru', continent: 'Americas', age: 60, language: 'C' }, { firstName: 'Lukas', lastName: 'X.', country: 'Croatia', continent: 'Europe', age: 75, language: 'Python' }, { firstName: 'Chloe', lastName: 'K.', country: 'Guernsey', continent: 'Europe', age: 88, language: 'Ruby' }, { firstName: 'Viktoria', lastName: 'W.', country: 'Bulgaria', continent: 'Europe', age: 98, language: 'PHP' }, { firstName: 'Piotr', lastName: 'B.', country: 'Poland', continent: 'Europe', age: 128, language: 'JavaScript' } ];Puede realizar dos actualizaciones para obtener el resultado deseado:
devAgesDiv : comprueba si la age de la lista es superior a 100 y devuelve 10; de lo contrario, divide entre 10; puedes parseInt el resultado de esa prueba
Puede usar includes en allAges para verificar que every ageBracket esté representado
Vea abajo:
const list = [ { firstName: 'Harry', lastName: 'K.', country: 'Brazil', continent: 'Americas', age: 19, language: 'Python' }, { firstName: 'Kseniya', lastName: 'T.', country: 'Belarus', continent: 'Europe', age: 29, language: 'JavaScript' }, { firstName: 'Jing', lastName: 'X.', country: 'China', continent: 'Asia', age: 39, language: 'Ruby' }, { firstName: 'Noa', lastName: 'A.', country: 'Israel', continent: 'Asia', age: 40, language: 'Ruby' }, { firstName: 'Andrei', lastName: 'E.', country: 'Romania', continent: 'Europe', age: 59, language: 'C' }, { firstName: 'Maria', lastName: 'S.', country: 'Peru', continent: 'Americas', age: 60, language: 'C' }, { firstName: 'Lukas', lastName: 'X.', country: 'Croatia', continent: 'Europe', age: 75, language: 'Python' }, { firstName: 'Chloe', lastName: 'K.', country: 'Guernsey', continent: 'Europe', age: 88, language: 'Ruby' }, { firstName: 'Viktoria', lastName: 'W.', country: 'Bulgaria', continent: 'Europe', age: 98, language: 'PHP' }, { firstName: 'Piotr', lastName: 'B.', country: 'Poland', continent: 'Europe', age: 128, language: 'JavaScript' } ]; const devAgesDiv = list.map(item => parseInt(item.age > 100 ? 10 : item.age / 10)); const ageBrackets = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; function allAges(list) { return ageBrackets.every(ageBracket => list.includes(ageBracket)); } console.log(allAges(devAgesDiv)); // true