使用通配符从对象中删除属性

使用通配符从对象中删除属性

问题描述:

我试图从某个对象中使用某种通配符删除多个项目。 物体看起来是这样的:使用通配符从对象中删除属性

myObject = { 
    id_0: {...}, 
    id_1: {...}, 
    id_2_radio_0: {...}, 
    id_2_radio_1: {...}, 
    id_2_radio_2: {...}, 
    id_5: {...}, 
    id_21: {...} 
} 

而且我希望能够做这样的事情(伪代码):

delete myObject['id_2_' + *] 

所以它会删除所有内容一键启动与“id_2_”

有没有合理的方式来做到这一点?要么或者收集匹配我的通配符的所有键的数组,以及通过该数组删除每个元素的过程。

我希望我在描述我的问题时不会太困惑!

这里是真正的JSON的示例:

{ 
    "jy-id-1_radio_0":{ "label":"alternativ 1", "reference":"jy-id-1" }, 
    "jy-id-1_radio_1":{ "label":"alternativ 2", "reference":"jy-id-1" }, 
    "jy-id-2":{ "label":"kryssruta", "reference":"jy-id-2" }, 
    "jy-id-3":{ "label":"kryssruta", "reference":"jy-id-3" } 
} 
+0

能否请您分享一个样本JSON? – Rajesh

+1

那么,___是否是'myArray'数组?它看起来更像是一个对象。 – Cerbrus

+0

详细说明你的问题:你发布的结构不是数组 – RomanPerekhrest

你可以遍历键,如果字符串以给定模式开始删除。

var object = { 
 
    id_0: {}, 
 
    id_1: {}, 
 
    id_2_radio_0: {}, 
 
    id_2_radio_1: {}, 
 
    id_2_radio_2: {}, 
 
    id_5: {}, 
 
    id_21: {} 
 
}; 
 

 
Object.keys(object).forEach(function (k) { 
 
    if (k.startsWith('id_2_')) { 
 
     delete object[k]; 
 
    } 
 
}); 
 

 
console.log(object);