Вы можете получить ключи от вашего объекта, используя Object.keys()
, а затем отфильтровать все ключи, в которых нет подчеркивания. Затем вы можете .map()
каждый ключ подстроки, удалив подчеркивание _
и его завершающий текст (используя .replace(/_.+/, '')
). Затем вы можете использовать new Set
для удаления любых дубликатов и Array.from
, чтобы превратить этот набор обратно в массив:
const obj={
cn_start: "SG",
cn_end:"TH",
cn1_start:"ML",
cn1_end:"IN"
}
const get_keys = obj =>
Array.from(new Set(Object.keys(obj).filter(k => k.includes('_')).map(k => k.replace(/_.+/, ''))));
console.log(get_keys(obj));
Если вы знаете, что все ваши ключи будут иметь подчеркивание, то вы можете удалить .filter()
.