首页 > 解决方案 > 从 Java 脚本对象中删除一个值

问题描述

我想知道如何从包含多个值的对象中删除特定值

这就是我的对象的样子

{
  'how can i change my password?': [
    'how can I change my password?',
    'how may I change my password?',
    'how am I able to change my password?'],

'how do i change my password?': [
    'how may I change my password?',
    'how can I change my password?',
    'how should I change my password?',
    'how would I change my password?',
    'how do I change my password?']
}

我想要做的是搜索如何更改我的密码值,每当我找到它时我想删除这个值。

如果稍微搜索一下,我发现的只是谈论删除整个对象或使用delete删除完整属性,但这不是我想要的..我只想从值数组中删除一个值。

预期输出:

{
  'how can i change my password?': [
    'how may I change my password?',
    'how am I able to change my password?'],

'how do i change my password?': [
    'how may I change my password?',
    'how should I change my password?',
    'how would I change my password?',
    'how do I change my password?']
}

标签: javascriptnode.jsarraysdictionaryobject

解决方案


从对象和数组中删除是两件不同的事情。

从对象中删除

let obj = { a: [1,2,3], b: [4,5,6], c: [7,8,9] };

// delete b from Object obj
delete obj.b;

// obj is { a: [1,2,3], c: [7,8,9] }

从数组中删除

let obj = { a: [1,2,3], b: [4,5,6], c: [7,8,9] };

// delete 2 from Array obj.a
obj.a = obj.a.filter(r => r !== 2);

// obj is { a: [ 1, 3 ], b: [ 4, 5, 6 ], c: [ 7, 8, 9 ] }

不要在数组上使用 delete

let obj = { a: [1,2,3], b: [4,5,6], c: [7,8,9] };

// delete by key on Array obj.a 
delete obj.a[2]; // 2 is a key, not a value

// obj is { a: [ 1, 2, <1 empty item> ], b: [ 4, 5, 6 ], c: [ 7, 8, 9 ] }

在您的情况下,您应该遍历对象的值并过滤它们的数组。


推荐阅读