Не работает регулярное выражение с "или"

У меня есть строка [{"text":"1","isDone":false},{"text":"2","isDone":false},{"text":"3","isDone":false}]

Из которой надо удалить подстроку, номер которой value передается в функцию, то есть регулярное выражение должно учитывать, что подстрока может иметь либо true, либо false. Например, для этой подстроки {"text":"1","isDone":false} value = 1;

Следовательно, результат должен быть:

[,{"text":"2","isDone":false},{"text":"3","isDone":false}]

Мои многочисленные попытки закончились на этом варианте кода:

let local = `[{"text":"${value}","isDone":false},{"text":"2","isDone":false},{"text":"3","isDone":false}]`

let reg = new RegExp(`{"text":"${taskValue}","isDone":true|false}`);

let a = local.replace(reg, '');

Кто может, помогите, пожалуйста, первый раз что-то делаю с регулярными выражениями и никак не могу понять, что не так


Ответы (2 шт):

Автор решения: Korostev

Наглупил и не увидел такого простого решения, спасибо!

let value = "1";
let obj = JSON.parse(localStorage.getItem("tasks"));
const index = obj.findIndex(n => n.text === value);
if (index !== -1) {
  obj.splice(index, 1);
}
console.log(obj); 
→ Ссылка
Автор решения: another_login

Можно и через регулярку, но это некорректно:

let taskValue = "2";
let local = `[{"text":"1","isDone":false},{"text":"2","isDone":false},{"text":"3","isDone":false}]`

let reg = new RegExp(`\{"text":"${taskValue}","isDone":(true|false)\}`);

let a = local.replace(reg, '').replace('[,', '[').replace(',,', ',').replace(',]', ']');

console.log(a);

А представленная строка это JSON, с массивом объектов:

let taskValue = "2";
let local = `[{"text":"1","isDone":false},{"text":"2","isDone":false},{"text":"3","isDone":false}]`
let tempObj = JSON.parse(local);
let i = tempObj.findIndex(obj => obj.text === taskValue);
if (i !== -1) {
  tempObj.splice(i, 1);
}

console.log(JSON.stringify(tempObj));

→ Ссылка