Vue 中 js splice方法不起作用
发布于 3 年前 作者 chaoren 2303 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

想根据某个id更改数据,更改id为1、2、3的可以但是children中的就不行

数据结构: [
{“id”:“1”,“name”:“clam1”,“num”:“1”},
{“id”:“2”,“name”:“clam2”,“num”:“1”,
“children”:
[
{“id”:“4”,“name”:“clam3”,“num”:“2”},
{“id”:“5”,“name”:“clam4”,“num”:“2”}
]
},
{“id”:“3”,“name”:“clam5”,“num”:“1”}]

代码如下:

ceshiJson(jsonData, temptID,temp) {
for (var i = 0; i < jsonData.length; i++) {
if (jsonData[i].id == temptID){
this.menusTable.splice(i, 1, temp)//id 1、2、3的这个可以执行
break;
}
else {
if (jsonData[i].hasOwnProperty(“children”)) {
var chdata = jsonData[i].children
for (var j = 0; j < chdata.length; j++) {
if (chdata[j].id == temptID){
<//console.log>(‘i=’+i)
<//console.log>(‘j=’+j)
<//console.log>(‘children=’+JSON.stringify(this.menusTable[i].children))
this.menusTable[i].children.splice(j, 1, temp)//id 4、5不起作用
break;
}
}
}
}
}
},

调用 this.ceshiJson(this.menusTable,this.temp.id, this.temp)

当this.temp.id是4的情况下 代码中this.menusTable[i].children.splice(j, 1, temp)不执行,这个是什么问题?需要如何调整

回到顶部