从对象中删除名称中包含某些字符的键(咖啡脚本)

时间:2019-05-13 06:26:12

标签: javascript 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]

这不起作用。

2 个答案:

答案 0 :(得分:0)

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

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
)

答案 1 :(得分:0)

只需遍历每个键:

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