我想更改此類物件中的鍵名:
const data = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4',
}
使用地圖中的這些鍵:
const map = {
'key1': 'change1',
'key4': 'change4'
}
使用下面的代碼:
const replacedKeysInData = Object.keys(data).map((key) => {
const keyFromMap = map[key] || key;
return { [keyFromMap]: data[key] }
})
console.log(replacedKeysInData);
我得到:
[
{ change1: 'value1' },
{ key2: 'value2' },
{ key3: 'value3' },
{ change4: 'value4' }
]
關鍵是我想把它放在一個物件中:
{
change1: 'value1',
key2: 'value2',
key3: 'value3',
change4: 'value4'
}
我想這很簡單,我該怎么做?謝謝
uj5u.com熱心網友回復:
您正在使用map它回傳一個陣列。我創建了一個空物件并將鍵添加到forEach
const data = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4',
}
const map = {
'key1': 'change1',
'key4': 'change4'
}
const replacedKeysInData ={}
Object.keys(data).forEach((key) => {
const keyFromMap = map[key] || key;
replacedKeysInData[keyFromMap] = data[key]
})
console.log(replacedKeysInData);
uj5u.com熱心網友回復:
const data = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4',
}
const map = {
'key1': 'change1',
'key4': 'change4'
}
const replacedKeysInData = Object.entries(data).map(val => {
if (Object.keys(map).includes(val[0])) {
return [map[val[0]], val[1]]
} else {
return val
}
});
const newData = Object.fromEntries(replacedKeysInData);
console.log(newData)
uj5u.com熱心網友回復:
它不必很復雜。只需遍歷物件、交換鍵并洗掉原始物件。
const data={key1:"value1",key2:"value2",key3:"value3",key4:"value4"},map={key1:"change1",key4:"change4"};
for (const key in data) {
if (map[key]) {
data[map[key]] = data[key];
delete data[key];
}
}
console.log(data);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425940.html
標籤:javascript 字典 目的 钥匙
