Typescript从嵌套在数组中的数组中拼接一个Item

时间:2017-01-25 16:52:39

标签: javascript arrays typescript multidimensional-array

我有一个嵌套在另一个项目数组中的项目数组。我试图删除嵌套数组中的特定项目。我有以下代码。

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是我需要删除的正确的。

3 个答案:

答案 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)