Aquí hay un código de ejemplo que estoy atascado. Creo que tiene algo que ver con la propiedad de la matriz alguna guía? Estoy buscando filtrar la matriz usando la propiedad de la liga.

<script>
var teams = [
{name: "newcastle", league: "Premiership"},
{name: "Hull", league: "League 1"},
{name: "Sunderland", league: "League 1"},
{name: "Arsenal", league: "Premiership"}];

var filterLeague = teams.filter(function (teams) {
 return (teams.league === "Premiership");
});

document.getElementById("output").innerHTML = filterLeague;

</script>
2
magpienath 31 oct. 2017 a las 21:31

3 respuestas

La mejor respuesta

Su filtro funciona bien, pero lo que devuelve es una matriz, por lo que agregarlo innerHTML no funcionará tan bien.

Hay algunas formas en que puede crear la salida dependiendo de lo que quiera hacer. Puede encadenar su matriz como sugieren las otras respuestas. O puede usar .map() para iterar sobre cada resultado y agregarlo como un nuevo elemento html.

var teams = [
{name: "newcastle", league: "Premiership"},
{name: "Hull", league: "League 1"},
{name: "Sunderland", league: "League 1"},
{name: "Arsenal", league: "Premiership"}];

teams
.filter(function (teams) {
 return (teams.league === "Premiership");
})
.map(function(team) {
  var ul = document.getElementById('map-output');
  var li = document.createElement('li');
  li.innerText = team.name;
  ul.appendChild(li);
});
<ul id="map-output"></ul>
0
Stephen 31 oct. 2017 a las 18:52

El resultado del filtro es una matriz de objetos. necesitas convertirlo en algún tipo de cadena para mostrarlo en un elemento DOM

<div id='output'></div>
<script>
var teams = [
{name: "newcastle", league: "Premiership"},
{name: "Hull", league: "League 1"},
{name: "Sunderland", league: "League 1"},
{name: "Arsenal", league: "Premiership"}];

var filterLeague = teams.filter(function (teams) {
 return (teams.league === "Premiership");
});

document.getElementById("output").innerHTML = JSON.stringify(filterLeague);

</script>
4
Guy Yogev 31 oct. 2017 a las 18:41

Cambie esto:

document.getElementById("output").innerHTML = filterLeague

A esto:

document.getElementById("output").innerHTML = JSON.stringify(filterLeague);
1
Moe kanan 31 oct. 2017 a las 18:41