从对象中删除名称包含某些字符的键 (Coffeescript)

Delete keys whose name contains certain characters from an object (Coffeescript)

我的编码技能非常初级,所以这可能是一个非常愚蠢的问题。

不管怎么说...

我有一个简单的 coffeescript 程序,它每隔几分钟运行一次,并将一组额外数据保存到 storage 对象中,并在键名上附加时间戳:

extra_data = (big long array of thousands of numbers)
newKey = "extra_data_#{@data.at}"
@storage[newKey] = extra_data

所以现在我在 storage 对象中保存了一堆数组,如下所示:

storage.extra_data_1820348106
storage.extra_data_1239861234
storage.extra_data_1908234710

我需要删除所有这些键,但保留 storage 对象的其余部分。在 CoffeeScript 中仅删除包含 extra_data(键名)的键的最简单方法是什么?

我尝试过:

delete @storage[/extra_data/g]

这没用。

使用for ... in循环获取所有键和值:

for own key of @storage
    if (/extra_data/g.test(key))
        delete @storage[key]

或使用 ES6+

Object.keys(@storage).forEach((key)
    -> if (/extra_data/g.test(key))
        delete @storage[key]
        return
)

只需遍历每个键:

for own k of storage
    if (k.includes("extra_data")) delete @storage[k]