我有一个嵌套在另一个项目数组中的项目数组。我试图删除嵌套数组中的特定项目。我有以下代码。
removeFromOldFeatureGroup() {
for( let i= this.featureGroups.length-1; i>=0; i--) {
if( this.featureGroups[i].featureGroupId == this.oldFeatureGroupId)
for( let z= this.featureGroups[i].features.length-1; z>=0; z--) {
if( this.featureGroups[i].features[z].featureId == this.featureId)
this.transferedFeature = this.featureGroups[i].features[z];
this.featureGroups[i].features[z].splice(z, 1);
return;
}
}
}
当我进行拼接时,会抛出一个错误,说拼接不是一个函数。怎么解决这个问题?此外,this.transferedFeature是我需要删除的正确的。
答案 0 :(得分:1)
应该是:
this.featureGroups[i].features.splice(z, 1);
由于this.featureGroups[i].features
是数组中的数组(基于您的描述)。
答案 1 :(得分:0)
我认为你把z中的元素误认为是一个数组,这是正确的代码
removeFromOldFeatureGroup() {
for( let i= this.featureGroups.length-1; i>=0; i--) {
if( this.featureGroups[i].featureGroupId == this.oldFeatureGroupId)
for( let z= this.featureGroups[i].features.length-1; z>=0; z--) {
if( this.featureGroups[i].features[z].featureId == this.featureId)
this.transferedFeature = this.featureGroups[i].features[z];
this.featureGroups[i].features.splice(z, 1);
return;
}
}
}
答案 2 :(得分:0)
这与索引的使用有关。
outerArr = [];
inner= [1,121,13];
outerArr.push(inner);
console.log(outerArr);
outerArr[0].splice(0,1)
console.log(outerArr)