chrome中可以用下列方法,但是edge不兼容:
const keyMap = {key1:"newKey1",key2:"newKey2",key3:"newKey3",key4:"newKey4"}
const obj = {key1:1,key2:2,key3:3,key4:4}
const newObj = Object.fromEntries(Object.entries(obj).map([k,v])=>[keyMap[k]||k,v]))
console.log(newObj)//{newKey1:1,newKey2:2,newKey3:3,newKey4:4}
兼容edge方法:
const keyMap = {key1:"newKey1",key2:"newKey2",key3:"newKey3",key4:"newKey4"}
const obj = {key1:1,key2:2,key3:3,key4:4}
const newObj=Object.keys(obj).reduce((newData, key) => {
let newKey = keyMap[key] || key
newData[newKey] = obj[key]
return newData
}, {})
console.log(newObj)//{newKey1:1,newKey2:2,newKey3:3,newKey4:4}
hasOwnProperty没测试过不知道其兼容性
const keyMap = { key1: "newKey1", key2: "newKey2", key3: "newKey3", key4: "newKey4" }
const obj = { key1: 1, key2: 2, key3: 3, key4: 4,key5:5 }
for (let item in obj) {
if (keyMap.hasOwnProperty(item)) {//hasOwnProperty可判断对象自身是否有指定的属性,返回一个Boolean值
obj[keyMap[item]] = obj[item];
delete obj[item]; //删除其之前的属性
}
}
console.log(obj)//{ key5: 5, newKey1: 1, newKey2: 2, newKey3: 3, newKey4: 4 }
如果对您有一丝的帮助,请赏个赞可好~