Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 从动态更新数组创建数组_Javascript_Arrays_Reactjs_Api_Fetch - Fatal编程技术网

Javascript 从动态更新数组创建数组

Javascript 从动态更新数组创建数组,javascript,arrays,reactjs,api,fetch,Javascript,Arrays,Reactjs,Api,Fetch,我的React项目中有一个琐事应用程序,我从api中获取一些数据: 问题: 答错人 正确答案 现在,我想对错误和正确答案进行一个arrya,并对它们进行映射,以便用户以随机顺序获得所有可能的答案 我在创建“allAnswers”数组时遇到问题 componentDidMount(){ axios.get()https://opentdb.com/api.php?amount=50)。然后(响应=>{ for(响应中的var键。数据。结果){ const question=[…this.state

我的React项目中有一个琐事应用程序,我从api中获取一些数据:

问题: 答错人 正确答案

现在,我想对错误和正确答案进行一个arrya,并对它们进行映射,以便用户以随机顺序获得所有可能的答案

我在创建“allAnswers”数组时遇到问题

componentDidMount(){
axios.get()https://opentdb.com/api.php?amount=50)。然后(响应=>{
for(响应中的var键。数据。结果){
const question=[…this.state.question,response.data.results[key].question];//这里我将数据放入每个类别中的状态
const answer=[…this.state.answer,response.data.results[key]。correct_answer];
const errowanswers=[…this.state.errowanswers,response.data.results[key]。error_answers];
const allAnswers=[ErrorAnswers,answer]//这里我试图收集所有可能的答案,然后让处理程序检查给定的答案是否正确
this.setState(prevState=>({
问题:问题:,
答:答,,
错误答案:错误答案,
allAnswers:allAnswers,
}));    
}
});
}所以我保存了50个问题和相应的答案以及错误的答案,以便不发送网络请求。
然后我做了一个随机计数器,用来映射一个随机问题
{this.state.question[this.state.random]}

然后,我映射所有答案的数组,以显示每个答案 {this.state.random!==未定义和this.state.ErrorAnswers[this.state.random]!==未定义和this.state.allAnswers[this.state.random].map((答案,索引)=>{ console.log(this.state.allAnswers[this.state.random]) 返回( {答案}
) }) })

我在这里的问题是,allAnswers的数组只是错误的答案,我无法找到一种方法在州内以各自的方式收集所有正确和错误的答案

您可以使用spread操作符连接两个数组

const answer = [...this.state.answer, response.data.results[key].correct_answer];
        const wrongAnswers = [...this.state.wrongAnswers, response.data.results[key].incorrect_answers];
        const allAnswers = [...answer, ...wrongAnswers]; 
这将产生一个数组,其中包含answer和errowanswers的元素


希望这能有所帮助。

我试过了,但说这个.state.allAnswers[this.state.random].map时出现了一个错误。map不是一个函数,当我尝试映射它时,问题是答案是一个字符串,这将导致与字符串相关
const answer = [...this.state.answer, response.data.results[key].correct_answer];
        const wrongAnswers = [...this.state.wrongAnswers, response.data.results[key].incorrect_answers];
        const allAnswers = [...answer, ...wrongAnswers];