Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React中过滤并映射到同一数组_Javascript_Node.js_Reactjs - Fatal编程技术网

Javascript 在React中过滤并映射到同一数组

Javascript 在React中过滤并映射到同一数组,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我有以下组成部分: function Params(props) { const { Parameters } = useFetchParams(); return ( <div className='Params'> { Parameters && Parameters.map(parameter => { const { Nam

我有以下组成部分:

function Params(props) {

    const { Parameters } = useFetchParams();

    return (
        <div className='Params'>
            {
                Parameters && Parameters.map(parameter => {
                    const { Name, Value } = parameter;
                    if (Name.includes(props.filter)) {
                        return (
                            <div className='Param' key={Name}>
                                <p>{Name}</p>
                                <p>{Value}</p>
                            </div>
                        )
                    }
                })
            }
        </div>
    )
}
我只想显示包含我从道具传入的文本的参数。您可以看到,我目前正在为此使用if语句,它看起来很笨拙。我想知道是否有可能同时映射和过滤这个数组

我尝试在地图的末尾粘贴过滤器,但它返回一个错误


感谢您像@Yevgen Gorbunkov建议的那样进行查看,您所做的很好,映射前过滤实际上并没有更快,尽管它可能更具可读性。 但是是的,这是可能的。像这样:

函数参数{ const{Parameters}=useFetchParams; 回来 { Parameters&&Parameters.filterparameter=>parameter.Name.IncludeProps.filter .mapparameter=>{ 常量{Name,Value}=参数; 回来 {Name}

{Value}

} } }
正如@Yevgen Gorbunkov所建议的,您所做的很好,映射之前的过滤实际上并没有更快,尽管它可能更具可读性。 但是是的,这是可能的。像这样:

函数参数{ const{Parameters}=useFetchParams; 回来 { Parameters&&Parameters.filterparameter=>parameter.Name.IncludeProps.filter .mapparameter=>{ 常量{Name,Value}=参数; 回来 {Name}

{Value}

} } }
对于.filter,您实际上不需要额外的循环。您仍然可以使用一个.map,它有条件地返回JSX或null/false/undefined,这将在渲染时被忽略。您得到了什么错误?你也试过用控制台记录props.filter?@DonJuanEco的值,如果你发现你正在过滤和映射一个数组,那么你可能想使用.reduce。它可以同时执行这两个操作。您实际上不需要为.filter添加额外的循环。您仍然可以使用一个.map,有条件地返回JSX或null/false/undefined,它们将在渲染时被忽略。您得到了什么错误?你也试过用控制台记录props.filter?@DonJuanEco的值,如果你发现你正在过滤和映射一个数组,那么你可能想使用.reduce。它可以同时做这两件事。