下面是物件
{
'File_12345.ZLM': {
MeterID_12345: {
BASIC_INFO: [Object]
}
}
}
{
'File_678910.ZLM': {
MeterID_678910: {
BASIC_INFO: [Object],
}
}
}
==================================================== ==============================================
我想要File_12345.ZLM并將 File_678910.ZLM 替換為密鑰名稱為“FileName”,將 MeterID_12345 和 MeterID_678910 替換為“MeterId”
所以預期輸出如下
{
'FileName': {
MeterId: {
BASIC_INFO: [Object]
}
}
}
{
'FileName': {
MeterId: {
BASIC_INFO: [Object],
}
}
}
uj5u.com熱心網友回復:
const obj = {oldKey: 'value'};
obj['newKey'] = obj['oldKey']; 洗掉 obj['oldKey'];
控制臺.log(obj); // ??? {newKey: 'value'}
uj5u.com熱心網友回復:
這個想法是抓住物件的鍵,因為只有一個。這樣我們就可以知道我們要替換的密鑰。為鑰匙和瞧!
我添加了第二種方法,將物件扁平化以使它們更易于使用,并且也不會丟失檔案名和 Meterid 資訊。
const files = [{
'File_12345.ZLM': {
MeterID_12345: {
BASIC_INFO: []
}
}
},
{
'File_678910.ZLM': {
MeterID_678910: {
BASIC_INFO: [],
}
}
}];
console.log(files.map(f=>{
const filename = Object.keys(f)[0];
f.FileName = f[filename]; delete f[filename];
const MeterId = Object.keys(f.FileName)[0];
f.FileName.MeterId = f.FileName[MeterId]; delete f.FileName[MeterId];
return f;
}));
const files2 = [{
'File_12345.ZLM': {
MeterID_12345: {
BASIC_INFO: []
}
}
},
{
'File_678910.ZLM': {
MeterID_678910: {
BASIC_INFO: [],
}
}
}];
console.log(files2.map(f=>{
const filename = Object.keys(f)[0];
const MeterId = Object.keys(f[filename])[0];
return {FileName:filename,MeterId,BASIC_INFO:f[filename][MeterId].BASIC_INFO};
}));
uj5u.com熱心網友回復:
正如@efkah指出的,這里的RegEx 解決方案:
const files = [{'File_12345.ZLM':{MeterID_12345:{BASIC_INFO:[]}}},{'File_678910.ZLM':{MeterID_678910:{BASIC_INFO:[]}}}];
const renamed = JSON.stringify(files)
.replaceAll(/File_\d \.ZLM/g, 'FileName')
.replaceAll(/MeterID_\d /g, 'MeterId');
const result = JSON.parse(renamed);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0 }
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/504789.html
標籤:javascript 节点.js 数组 json
