3 回答

TA貢獻1963條經(jīng)驗 獲得超6個贊
這是邏輯,我正在考慮您要刪除具有開放大括號('{')和結束大括號('}')的“進度”:
var data = `data{
id
date
***progress{
update
progressStatus
}***
events {
id
time
}
}`;
function _remove(data, key) {
var s = data.indexOf(key);
var e = ((s) => {
for(var i=s; i<data.length; i++){
if(data[i] == "}")
return i;
}
})(s + key.length);
console.log(data.replace(data.substr(s, e-s+1), ""));
}
_remove(data, 'progress');
也可以用正則表達式來完成!

TA貢獻1831條經(jīng)驗 獲得超4個贊
您可以嘗試使用正則表達式
const regex = /progress{[^}]+}\s+/gm;
const str = `data{
id
date
progress{
update
progressStatus
}
events {
id
time
}
}`;
const subst = ``;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);

TA貢獻1858條經(jīng)驗 獲得超8個贊
什么是我有多條線?grapqh 的查詢會返回一個對象,為什么還是一個多字符串?
在您的情況下(查詢數(shù)據(jù)是字符串),請嘗試:
const data = ` data{
id
date
progress{
update
progressStatus
}
events {
id
time
}
}`
const newData = data.replace(`progress{
update
progressStatus
}`, '')
console.log(newData)
如果你想刪除對象中的一個鍵,試試這個:
delete data.progress;
// or,
delete data['progress'];
// or,
const prop = "progress";
delete data[prop];
演示:
const data = {
progress: {
x: "x"
},
events: {
id: 1
}
}
delete data.progress
console.log(data)
添加回答
舉報