Estoy tratando de obtener una respuesta de matriz de mi función getTeam() para poder filtrar correctamente mi DataTable para mostrar más de un equipo para el jugador actual (si están en más de un equipo).
Filtro de tablas de datos:
$.fn.dataTable.ext.search.push( //creating my own filter function for the table function(settings, searchData, index, rowData, counter, statusClass) { var userName = searchData[1]; //created a var to search through the 3rd column (0 index) which contains all of the Monday Dates var searchTeam = searchData[0]; // Get Datatables API var api = $.fn.dataTable.Api('#myTable'); if (settings.sTableId === 'myTable' ) { if(userName === thisUserTitle){ return true; } else { return false; } } if (settings.sTableId === 'certificateTable' ) { if(currentTeam === searchTeam){ return true; } else { return false; } } return true; } );El fragmento original que devuelve solo el primer equipo:
var teamData = [{ "Team" : "Team 1", "Players" :[ "Beerus Dev", "Goten Dev", "Trunks Dev", "Majin Bu Dev" ] }, { "Team" : "Team 2", "Players" : [ "Beerus Dev", "Shap Dev", "Krillin Dev" ] } ]; function getTeam() { const team = teamData.find(team => team.Players.includes(currentUser)); return team.Team; } var currentUser = "Beerus Dev"; var currentTeam = getTeam(currentUser); console.log(currentTeam); Para obtener la respuesta de la matriz, he intentado usar .filter() en lugar de .find() pero termino obteniendo una matriz vacía como respuesta.
var teamData = [{ "Team" : "Team 1", "Players" :[ "Beerus Dev", "Goten Dev", "Trunks Dev", "Majin Bu Dev" ] }, { "Team" : "Team 2", "Players" : [ "Beerus Dev", "Shap Dev", "Krillin Dev" ] } ]; var currentUser = "Beerus Dev"; const team = teamData.filter(function(team, i){ return teamData[i].Players.includes(currentUser); }) console.log(team)Simplifica este código:
var teamData = [{ "Team" : "Team 1", "Players" :[ "Beerus Dev", "Goten Dev", "Trunks Dev", "Majin Bu Dev" ] }, { "Team" : "Team 2", "Players" : [ "Beerus Dev", "Shap Dev", "Krillin Dev" ] } ]; var currentUser = "Beerus Dev"; const team = teamData.filter(team => team.Players.includes(currentUser)).map(team => team.Team); console.log(team)