使用通配符从对象中删除属性
问题描述:
我试图从某个对象中使用某种通配符删除多个项目。 物体看起来是这样的:使用通配符从对象中删除属性
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" }
}
答
你可以遍历键,如果字符串以给定模式开始删除。
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);
能否请您分享一个样本JSON? – Rajesh
那么,___是否是'myArray'数组?它看起来更像是一个对象。 – Cerbrus
详细说明你的问题:你发布的结构不是数组 – RomanPerekhrest