Javascript 如何在数组中的索引中添加元素?反应
我正在做抽搐抽搐的游戏,但我有个问题 我想将元素添加到数组中传递的位置 我的app.js:Javascript 如何在数组中的索引中添加元素?反应,javascript,reactjs,Javascript,Reactjs,我正在做抽搐抽搐的游戏,但我有个问题 我想将元素添加到数组中传递的位置 我的app.js: import React,{Component}来自'React'; 导入“/App.css”; 从“/Square.js”导入Square; 导入“./Square.css”; 类应用程序扩展组件{ 构造函数(){ 超级(); 此.state={ 电路板:阵列(9)。填充(“”), 当前用户:“X”, 位置:数组(9)。填充(“”), } } changeUser=()=>{ 这是我的国家({ cur
import React,{Component}来自'React';
导入“/App.css”;
从“/Square.js”导入Square;
导入“./Square.css”;
类应用程序扩展组件{
构造函数(){
超级();
此.state={
电路板:阵列(9)。填充(“”),
当前用户:“X”,
位置:数组(9)。填充(“”),
}
}
changeUser=()=>{
这是我的国家({
currentUser:this.state.currentUser=='X'?“O”:“X”,
})
}
render(){
返回(
井字游戏
{this.state.board.map((v,i)=>
{props=>({props})}
)}
);
}
}
导出默认应用程序代码>您需要使用拼接功能,将项目放入特定位置
所以你应该像这样做
position.splice(thePosition, 0, valueToBeInserted);
您可以在中读取其文档。您需要使用拼接功能,将项目放入特定位置
所以你应该像这样做
position.splice(thePosition, 0, valueToBeInserted);
您可以在您正在使用的中阅读其文档:
position.push(currentUser);
这会将元素“currentUser”添加到数组中。那不是你想要的
你应该改为:
position[i] = currentUser;
您正在使用:
position.push(currentUser);
这会将元素“currentUser”添加到数组中。那不是你想要的
你应该改为:
position[i] = currentUser;
你可以改变
position.push(currentUser);
到
下一步:将处理程序向下传递到Square
,该处理程序更新App
中的状态,而不是在Square
中对状态进行修改
position.push(currentUser);
到
下一步:将处理程序向下传递到Square
,该处理程序更新App
中的状态,而不是在Square
中对状态进行变异位置。push()
方法只会添加到数组中。要影响阵列的特定位置,需要:
this.state = {
board: Array(9).fill('')
}
this.state.board[1] = 'X'
最后一行代码将用一个“X”字符替换board变量第一个位置的当前值,给出:
["", "X", "", "", "", "", "", "", ""]
希望能有帮助
更新
我的理解是slice()
方法将在数组的中间插入一个元素。因此,它将增长。我认为这不是你的目标
更新
您应该始终使用setState()
函数更新组件的状态position.push()
方法只会添加到数组中。要影响阵列的特定位置,需要:
this.state = {
board: Array(9).fill('')
}
this.state.board[1] = 'X'
最后一行代码将用一个“X”字符替换board变量第一个位置的当前值,给出:
["", "X", "", "", "", "", "", "", ""]
希望能有帮助
更新
我的理解是slice()
方法将在数组的中间插入一个元素。因此,它将增长。我认为这不是你的目标
更新
您应该始终使用
setState()
函数更新组件的状态错误消息是什么?它是打印,它添加到数组的末尾:(永远不要对传递给您的道具进行变异。将父级回调传递给子级调用的子级,并让父级回调调用setState
尝试。splice(position,0,player)
而不是推送错误消息是什么?这是打印,它添加到数组末尾:(切勿对传递给您的道具进行变异。将父级回调传递给子级调用的子级,并让父级回调调用setState
try.splice(position,0,player)
而不是按