从对象中删除名称包含某些字符的键 (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]
我的编码技能非常初级,所以这可能是一个非常愚蠢的问题。
不管怎么说...
我有一个简单的 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]