3 回答
TA贡献1963条经验 获得超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条经验 获得超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条经验 获得超8个赞
什么是我有多条线?grapqh 的查询会返回一个对象,为什么还是一个多字符串?
在您的情况下(查询数据是字符串),请尝试:
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)
添加回答
举报