有一个删除按钮,点一下,删除一个对象属性或者值
var obj = {a:'200',b:'2345',c:'1'}
期望:
{a:'200',b:'2345',c:'1'}
{a:'200',b:'2345',c:''}
{a:'200',b:'2345'}
{a:'200',b:'234'}
{a:'200',b:'23'}
{a:'200',b:'2'}
{a:'200',b:''}
{a:'200'}
...
有一个删除按钮,点一下,删除一个对象属性或者值
var obj = {a:'200',b:'2345',c:'1'}
期望:
{a:'200',b:'2345',c:'1'}
{a:'200',b:'2345',c:''}
{a:'200',b:'2345'}
{a:'200',b:'234'}
{a:'200',b:'23'}
{a:'200',b:'2'}
{a:'200',b:''}
{a:'200'}
...
deleteKey(obj,key){
delete obj[key]
}
deleteValue(obj,key){
obj[key] = null//或者赋值为 题目里 你要的空字符串""
}
//思路就是把对象转二维数组,进行对后面的数组的value - 1,
function del(obj) {
let arr = [];
let newObj = {};
for (item in obj) {
arr.push([item, obj[item]])
}
if (arr && arr.length > 0) {
let value = arr[arr.length - 1][1];
if (value.length > 0) {
arr[arr.length - 1][1] = value.slice(0, value.length - 1);
} else {
arr.splice(arr.length - 1, 1)
}
}
arr.forEach((o) => {
newObj[o[0]] = o[1];
})
window.obj = newObj
console.log(obj)
}
del(obj);
function backspace(target) {
return JSON.parse(
JSON.stringify(target).replace(/,?[^{,:]+:""(?=}$)|[^"](?="}$)/, "")
);
}
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
console.log((obj = backspace(obj)));
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决