首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用基于条件的索引位置从数组中删除所有记录?

如何使用基于条件的索引位置从数组中删除所有记录?
EN

Stack Overflow用户
提问于 2016-12-08 22:44:14
回答 3查看 48关注 0票数 0

我在数组中有如下记录:

代码语言:javascript
复制
$scope.skills = [];

$scope.skills['et']= s1
$scope.skills['et']= s2
$scope.skills['et']= s3

$scope.skills['gf']= t1
$scope.skills['gf']= t2
$scope.skills['gf']= t3

$scope.skills['po']= b1
$scope.skills['po']= b2
$scope.skills['po']= b3

现在我想根据下面的值删除数组中的所有记录:

代码语言:javascript
复制
$scope.value ='gf';

现在我想从数组中删除索引不是‘gf’的所有记录:

因此技能数组应该只包含'gf‘记录,如下所示:

预期输出:

代码语言:javascript
复制
$scope.skills['gf']= t1
$scope.skills['gf']= t2
$scope.skills['gf']= t3
EN

回答 3

Stack Overflow用户

发布于 2016-12-08 22:52:58

您应该能够遍历数组对象中的所有键,并删除不需要的键。

代码语言:javascript
复制
for(var k in Object.keys($scope.skills)){
    if(k !== "gf"){
        delete $scope.skills[k];
    }
}

作为附注,对于键的每次赋值,您将在以下代码之后覆盖该值

代码语言:javascript
复制
$scope.skills['gf']= t1
$scope.skills['gf']= t2
$scope.skills['gf']= t3

$scope.skills['gf']的值将是变量t3的值。

票数 1
EN

Stack Overflow用户

发布于 2016-12-08 22:51:55

我认为你的例子在概念上有问题。将倍增值分配给同一属性将覆盖以前的分配。

无论如何,如果您只需要一个对象的单个属性,则可以只使用该属性创建一个新对象:

代码语言:javascript
复制
$scope.skills = $scope.skills['gf'];
票数 0
EN

Stack Overflow用户

发布于 2016-12-08 23:01:21

您需要更改“数组”的结构,以便能够存储具有相同键的多个项。

示例:

代码语言:javascript
复制
$scope.skills = [];

$scope.skills.push({key: 'et', value: 's1'});
$scope.skills.push({key: 'et', value: 's2'});
$scope.skills.push({key: 'et', value: 's3'});

$scope.skills.push({key: 'gf', value: 't1'});
$scope.skills.push({key: 'gf', value: 't2'});
$scope.skills.push({key: 'gf', value: 't3'});

$scope.skills.push({key: 'po', value: 'b1'});
$scope.skills.push({key: 'po', value: 'b2'});
$scope.skills.push({key: 'po', value: 'b3'});

现在您可以像这样删除:

代码语言:javascript
复制
$scope.keyToDelete = 'gf';

for(var i = $scope.skills.length - 1; i >= 0; i--) {
    if($scope.skills[i].key === $scope.keyToDelete) {
        $scope.skills.splice(i, 1);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41042124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档