Удалить ключи, имя которых содержит определенные символы из объекта (Coffeescript) - PullRequest
1 голос
/ 13 мая 2019

Мои навыки кодирования ОЧЕНЬ рудиментарны, так что это может быть очень тупой вопрос.

Так или иначе здесь идет ...

У меня есть простая программа 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 в покое. Какой самый простой способ удалить только те ключи, которые содержат extra_data (в названии ключа) в CoffeeScript?

Я попытался:

delete @storage[/extra_data/g]

и это не сработало.

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Просто итерируйте по каждому ключу:

for own k of storage
    if (k.includes("extra_data")) delete @storage[k]
0 голосов
/ 13 мая 2019

Используйте для ... в цикле, чтобы получить все ключи и значение:

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
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...