我需要將 Keys 轉換為小寫并洗掉它們之間的空格(如果有)。所有的鍵都是動態的,可以是任意數量的鍵。鍵可能包含字母數字以及特殊字符。Javascript 或 Typescript 任何東西都可以為我做。我有點卡在這里。
當前 JSON :
[
{
"Outdated Label (Key1)": "Outdated Label1",
"Outdated Value": "Outdated Value"
},
{
"Outdated Label (Key1)": "Outdated Label2",
"Outdated Value": "Outdated Value2"
},
{
"Outdated Label (Key1)": "Outdated Label3",
"Outdated Value": "Outdated Value3"
},
{
"Outdated Label (Key1)": "Outdated Label4",
"Outdated Value": "Outdated Value4"
}
]
預期的 JSON:
[
{
"outdatedlabel(key1)": "Outdated Label1",
"outdatedvalue": "Outdated Value"
},
{
"outdatedlabel(key1)": "Outdated Label2",
"outdatedvalue": "Outdated Value2"
},
{
"outdatedlabel(key1)": "Outdated Label3",
"outdatedvalue": "Outdated Value3"
},
{
"outdatedlabel(key1)": "Outdated Label4",
"outdatedvalue": "Outdated Value4"
}
]
uj5u.com熱心網友回復:
我已經查看了這個問題,并提出了一個可行的解決方案,并且是用純 JavaScript 撰寫的。此解決方案適用于給定陣列和任何其他未嵌套的物件陣列。由于您想要一個新陣列,我們可以使用 .map 然后遍歷當前物件中的每個鍵并以滿足您要求的方式修改鍵。
let o = [
{
"Outdated Label (Key1)": "Outdated Label1",
"Outdated Value": "Outdated Value"
},
{
"Outdated Label (Key1)": "Outdated Label2",
"Outdated Value": "Outdated Value2"
},
{
"Outdated Label (Key1)": "Outdated Label3",
"Outdated Value": "Outdated Value3"
},
{
"Outdated Label (Key1)": "Outdated Label4",
"Outdated Value": "Outdated Value4"
}
]
let whitespace = new RegExp(/\s/g);
let lo = o.map((entry) => {
let modified = {};
Object.keys(entry).forEach((key) => {
let value = entry[key];
key = key
.toLowerCase()
.replace(whitespace, "");
modified[key] = value;
});
return modified;
});
console.log(lo);
uj5u.com熱心網友回復:
這是我的解決方案,使用map功能。
var arr = [
{
"Outdated Label (Key1)": "Outdated Label1",
"Outdated Value": "Outdated Value"
},
{
"Outdated Label (Key1)": "Outdated Label2",
"Outdated Value": "Outdated Value2"
},
{
"Outdated Label (Key1)": "Outdated Label3",
"Outdated Value": "Outdated Value3"
},
{
"Outdated Label (Key1)": "Outdated Label4",
"Outdated Value": "Outdated Value4"
}
];
const expectedJson = arr.map(function(item) {
for(const key of Object.keys(item)) {
const lowerCaseKey = key.toLowerCase().replace(/\s/g, '');
if (lowerCaseKey !== key) {
item[lowerCaseKey] = item[key];
delete item[key];
}
}
return item;
})
console.log(expectedJson)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/426081.html
標籤:javascript 有角度的 细绳
