Javascript 过滤方法在另一种方法上?
我想在下面定义的可渲染方法上运行一个过滤器方法。是否有可能做到:Javascript 过滤方法在另一种方法上?,javascript,json,reactjs,filter,Javascript,Json,Reactjs,Filter,我想在下面定义的可渲染方法上运行一个过滤器方法。是否有可能做到: renderTable().filter(x=>x.name) 现在,我有一个表,其中包含每个类别的行以及它们从提供一些json数据的url得到的结果 我想做一个功能,允许用户调整设置以返回他们想要的结果 代码 const renderTable = () => { return players.map(player => { return ( <tr> <td>{pl
renderTable().filter(x=>x.name)
现在,我有一个表,其中包含每个类别的行以及它们从提供一些json数据的url得到的结果
我想做一个功能,允许用户调整设置以返回他们想要的结果
代码
const renderTable = () => {
return players.map(player => {
return (
<tr>
<td>{player.name}</td>
<td>{player.age}</td>
<td>{player.gender}</td>
<td>{player.state}</td>
<td>{player.status}</td>
</tr>
)
})
}
return (
<div className = "App">
<h1>Players</h1>
<table id = "players">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
<th>State</th>
<th>Status</th>
</tr>
</thead>
<tbody>{renderTable()}</tbody>
</table>
</div>
);
const renderable=()=>{
返回玩家。地图(玩家=>{
返回(
{player.name}
{player.age}
{玩家性别}
{player.state}
{player.status}
)
})
}
返回(
球员
名称
年龄
性别
陈述
地位
{renderable()}
);
是的,你可以。只需在地图玩家之前进行筛选。筛选(…).map
。但这更好
const renderTable = () => {
const rows = []
players.forEach((player, index) => {
if(player.name) {
rows.push(
<tr key={index}>
<td>{player.name}</td>
<td>{player.age}</td>
<td>{player.gender}</td>
<td>{player.state}</td>
<td>{player.status}</td>
</tr>
)
}
})
return rows;
}
const renderable=()=>{
常量行=[]
players.forEach((player,index)=>{
if(player.name){
推(
{player.name}
{player.age}
{玩家性别}
{player.state}
{player.status}
)
}
})
返回行;
}
您可以在映射之前应用过滤器。在这里,尝试一下:
const renderTable = () => {
return players
.filter(player => player.state === "NSW")
.map(player => {
return (
<tr>
<td>{player.name}</td>
<td>{player.age}</td>
<td>{player.gender}</td>
<td>{player.state}</td>
<td>{player.status}</td>
</tr>
);
});
};
const renderable=()=>{
返回球员
.filter(player=>player.state==“NSW”)
.map(播放器=>{
返回(
{player.name}
{player.age}
{玩家性别}
{player.state}
{player.status}
);
});
};
这是给你的裁判的一封信
如果您的
renderable
方法返回一个数组,则为。但我很确定它会返回jsx
。因此,在这种情况下,您应该在renderTable
方法内部应用过滤器。@SiddAjmera所以它应该是})。过滤器…
在renderTable方法内部?是的,我的意思是enderTable
方法将返回一些行。该行将填充一些可能来自数组的数据。您可以在将该数组映射到tr
sapreciate之前对该数组应用过滤器,但这不会以任何方式改变我以前编写的代码表。我也在寻找不仅仅是名字,而是一种让用户能够调整他们想要返回的内容的方法。我想你只要将条件if(player.name)
更改为你想要的任何内容