【问题标题】:onClick event that checks if an array includes the elementonClick 事件,检查数组是否包含元素
【发布时间】:2022-09-27 20:00:57
【问题描述】:

我有一个通过下拉列表控制的状态数组。

这是像这样的状态:

    const [finalselected, setfinalSelected] = useState([]);

单击提交按钮时,我想确认数组中尚不存在某个元素,例如个人无法在数组中输入“经验”:“相似角色”10次。

如果它是重复的,我当前的功能不会阻止其他元素的出现:

    const onSubmitFinalSelection = (val) => {
    
        if (!finalselected.includes(selectedExperience)) {
            //if finalselected does NOT include the element, then add in a new element
            // setfinalSelected((prev) => [...prev, selectedExperience, inputfield]);
            
        setfinalSelected((prevFinalSelection) => [
            ...prevFinalSelection,
            {
                //this is the dropdown
                experience: selectedExperience,
                //this is an input
                inputfield, 
            },
        ]);
        }

        console.log(finalselected)
      };

你会如何重写这个?

  • 为什么不隐藏添加的那个
  • 我想使用智能逻辑使其成为一个高效的过程

标签: javascript


【解决方案1】:

像这样的东西?我认为 includes 函数不适用于 selectedExperience。

    const onSubmitFinalSelection = (val) => {
        // If found, return
        if (finalselected.some(x => x.experience === selectedExperience)) 
          return;
            
        setfinalSelected([...finalSelected, {
                //this is the dropdown
                experience: selectedExperience,
                //this is an input
                inputfield, 
        }])
        
        console.log(finalsSlected)
      };

【讨论】:

    猜你喜欢
    • 2016-10-13
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2021-06-20
    • 2013-02-20
    相关资源
    最近更新 更多