JS 对象中元素替换的方法
我希望有一个函数,能替换对象的关键字。具体就是将对象obj的关键字temp替换为ok。
例如是这样的:
let obj={
name:'tang',
age:'18',
date:'temp'
}
//处理函数
function objChange(obj){
//这里是处理代码,将对象中所有temp替换为ok,问题是这个代码怎么写比较科学
return obj
}
//输出处理结果
console.log(objChange(obj))
特别注意,obj是不的结构和内容都是不固定的,不规则的,不能直接指定key赋值来替换,因为对象不规则,遍历也是比较复制。例如obj可能是这样的:
let obj={
name:'tang',
age:'18',
xx:'temp'
}
也可能是这样的:
let obj={
name:'tang',
age:'18',
xx:{test:'test',that:'temp'}
}
问题:求各位大哥指教一下这个替换代码这么写比较好。 连接: https://www.cnblogs.com/smallfa/p/11797195.html
思路:先把obj转换成string,在使用replace(可以使用正则)替换Temp成OK,
再讲string转换成obj。 。。。。。,转成字符串替换 JSON或递归 var Temp2Ok = function () {
let obj = {
name: 'tang',
age: '18',
xx: { test: 'test', that: 'temp' }
}
var str = JSON.stringify(obj);
str = str.replace("temp", "ok");
obj = JSON.parse(str);
return obj;
} 转为字符串进行替换 用 JSON.stringify 转化为 字符串进行替换 let object1 = {
a: "somestring",
b: 42,
};
function change(obj) {
let _obj = {};
for (const of Object.entries(obj)) {
let _value = value;
if (_value == "somestring") {
_value = "ok";
}
_obj = _value;
}
return _obj;
}
console.log(change(object1));
```
let obj = {
name: 'tang',
age: '18',
date: "temp",
xx: {
test: 'test',
that: 'temp'
}
}
var jsonString = JSON.stringify(obj, function(key, value) {
if (value == "temp") {
return "ok";
}
return value;
});
console.log(jsonString)
obj = JSON.parse(jsonString)
console.log(obj)
``` 思路不错,值得借鉴
页:
[1]
2