Javascript 如何将数据附加到嵌套数组元素
我正在尝试向嵌套阵列添加数据,并且已经尝试了许多堆栈溢出链接来解决此问题,但没有成功 原始数据:Javascript 如何将数据附加到嵌套数组元素,javascript,arrays,react-native,Javascript,Arrays,React Native,我正在尝试向嵌套阵列添加数据,并且已经尝试了许多堆栈溢出链接来解决此问题,但没有成功 原始数据: cuisine: [ [ "Middle Eastern", 4 ], [ "Western",
cuisine: [
[
"Middle Eastern",
4
],
[
"Western",
4
],
[
"Pasta Dishes",
2
],
[
"Salad",
2
],
[
"Mexican",
1
],
[
"Soup",
1
],
[
"snacks",
1
]
],
cuisine: [
[
1
false
"Middle Eastern",
4
],
[
2
false
"Western",
4
],
[
3
false
"Pasta Dishes",
2
],
[
"Salad",
2
],
[
4
false
"Mexican",
1
],
[
5
false
"Soup",
1
],
[
6
false
"snacks",
1
]
],
所需数据:
cuisine: [
[
"Middle Eastern",
4
],
[
"Western",
4
],
[
"Pasta Dishes",
2
],
[
"Salad",
2
],
[
"Mexican",
1
],
[
"Soup",
1
],
[
"snacks",
1
]
],
cuisine: [
[
1
false
"Middle Eastern",
4
],
[
2
false
"Western",
4
],
[
3
false
"Pasta Dishes",
2
],
[
"Salad",
2
],
[
4
false
"Mexican",
1
],
[
5
false
"Soup",
1
],
[
6
false
"snacks",
1
]
],
我的代码
this.setState({ cousineArray: cuisine }, () => {
this.addValuesToArray(this.state.cousineArray);
});
addValuesToArray = commingArray => {
console.warn(commingArray);
if (commingArray !== null && commingArray !== undefined) {
for (i = 0; i < commingArray.length; i++) {
this.setState(
{
commingArray: this.state.commingArray.push(i, false)
},
() => {
console.log("Coming Array ==> ", commingArray[1]);
}
);
}
}
this.setState({cousineArray:courine},()=>{
this.addValuesToArray(this.state.cousineArray);
});
addValuesToArray=commingArray=>{
控制台。警告(commingArray);
if(commingArray!==null&&commingArray!==未定义){
对于(i=0;i {
log(“Coming Array==>”,commingArray[1]);
}
);
}
}
})
但它不工作,并抛出以下错误
无法读取未定义的属性“push”
我做错了什么事。请告诉我更好的方法,如果这不是很好的方式做这件事。谢谢使用
forEach
循环使用您自己的逻辑推送数组中的值
var=[
[
“中东”,
4.
],
[
“西部”,
4.
],
[
“意大利面菜”,
2.
],
[
“沙拉”,
2.
],
[
“墨西哥”,
1.
],
[
“汤”,
1.
],
[
“零食”,
1.
]
]
烹饪。forEach(功能(e,j){
e、 取消移位(假)
e、 取消移位(j)
e、 取消移位({key:'value'})
})
console.log(烹饪)
不要在循环中设置状态,也可以使用map
正确设置嵌套数组的值:
addValuesToArray = commingArray => {
console.warn(commingArray);
if (commingArray !== null && commingArray !== undefined) {
const res = commingArray.map(arr => {
return arr.map((innerArr, i) => {
return [...innerArr, i, false]
})
})
this.setState({
commingArray: res
},
() => {
console.log("Coming Array ==> ", commingArray);
}
);
}
}
看起来应该使用特定类型的数组,而不是非结构化二维数组。除非第三方限制您使用该结构!我们还可以向新添加的值(如e.push(“checked”,false)和e.push(“id”,j))添加键吗?可以向支持它的对象添加键-值对。数组不支持键值配对显示,即使可以在数组中添加对象。选中editsHow以实现此目的?我们是否可以在开头而不是结尾添加新添加的值?