首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建此函数?(相同结果检查)

如何创建此函数?(相同结果检查)
EN

Stack Overflow用户
提问于 2021-02-18 12:33:03
回答 1查看 82关注 0票数 1

我正在用ReactJS制作MBTI应用程序,但我现在遇到了一些问题

当我单击按钮时,我得到了一些字符串ex 'E或I‘,然后当它完成时,我得到了字符串值ex’‘EEINNSTTFPPJ’,所以我想把这个值更改为'ENTP‘

我怎么才能做到呢?1.状态

代码语言:javascript
复制
const TOTAL_SLIDES = 12
const [score, setScore] = useState(0)
const [type, setType] = useState([])
const [num, setNum] = useState(0)
const [currentSlide, setCurrentSlide] = useState(1)
const slideRef = createRef(null)
const history = useHistory()
const [mbti, setMbti] = useState('')

2.funtion

代码语言:javascript
复制
   const nextSlideFir = () => {
            setNum(num + 1)
            setType(questions[num].answers[0].type)
            setMbti(mbti + type)
            setCurrentSlide(currentSlide + 1)
            slideRef.current.style.transform += 'translateX(-100vw)'
        
        }
        const nextSlideSec = () => {
            setNum(num + 1)
            setType(questions[num].answers[1].type)
            setMbti(mbti + type)
            setCurrentSlide(currentSlide + 1)
            slideRef.current.style.transform += 'translateX(-100vw)'
            
        }
    
//I Don't know how to get same duplicate values
        const mbitChecker = string => {
    const words = [string]
    return words.filter((item, index) => words.indexOf(item) !== index)
}
        useEffect(() => {
            currentSlide > TOTAL_SLIDES &&
                mbitChecker(mbti) &&
                history.push(`/result/${mbti}`)
        })

)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-18 12:59:44

不确定您要尝试的是什么,但最好使用useEffect的依赖数组

代码语言:javascript
复制
const extractDuplicates = (text) => {
  // extractDuplicates('EEINNSTTFPPJ') -> "ENTP"
  const ans = []
  for (t of text) {
    if (text.indexOf(t) !== text.lastIndexOf(t)) {
      if (ans.indexOf(t) < 0) {
        ans.push(t)
      }
    }
  }
  return ans.join('')
}
代码语言:javascript
复制
    useEffect(() => {
        currentSlide > TOTAL_SLIDES && history.push(`/result/${mbti}`)
        console.log(`${mbti}`)
        mbitChecker()
    }, [mbti])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66253670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档