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

时间:2017-10-09 07:35:22

标签: javascript jquery arrays filter

我尝试使用某种通配符从对象中删除多个项目。 对象可能如下所示:

initialize()

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

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

所以它会删除所有带有以#34; id_2 _"

开头的键的元素

有合理的方法吗?或者收集与我的通配符匹配的所有键的数组,以及通过该数组的foreaching删除每个元素。

我希望我对我的问题的描述不会太混乱!

以下是真实JSON的示例:

delete myObject['id_2_' + *] 

1 个答案:

答案 0 :(得分:1)

如果字符串以给定模式开头,您可以迭代键并删除。



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);