JavaScript:将对象属性中的每个单词缩短为固定长度?

JavaScript:将对象属性中的每个单词缩短为固定长度?,javascript,Javascript,是否还有其他方法可以获取以下对象: { "computer_general_last_contact_time_epoch": 1566522907515, "computer_general_last_contact_time_utc": "2019-08-23T01:15:07.515+0000", "computer_general_initial_entry_date": "2018-08-18", } 并缩短每个属性名称,以便将对象键的每个单词字符缩短为固定的字

是否还有其他方法可以获取以下对象:

 {
   "computer_general_last_contact_time_epoch": 1566522907515,
   "computer_general_last_contact_time_utc": "2019-08-23T01:15:07.515+0000",
   "computer_general_initial_entry_date": "2018-08-18",
 }
并缩短每个属性名称,以便将对象键的每个单词字符缩短为固定的字符长度。例如,缩短到3个字符的固定长度将产生:

{
   "com_gen_las_con_tim_epo": 1566522907515,
   "com_gen_las_con_tim_utc": "2019-08-23T01:15:07.515+0000",
   "com_gen_ini_ent_dat": "2018-08-18",
}

我需要创建一个新对象吗?遍历我当前对象中的每个对象,使用正则表达式删除所有“\ux”,然后缩短每个单词,然后将它们与“中间”一起添加?我对此非常迷茫,因为我有100个属性的对象,我需要缩短这些属性以进行集成,任何建议都会有所帮助

如果只想缩短现有属性名,可以创建一个新的objecct,但可以在现有对象上创建第二组属性名(通过迭代键),只需映射回较长的属性名即可

让obj={
“计算机\u常规\u上次联系\u时间\u纪元”:1566522907515,
“计算机概述最后联系时间utc”:“2019-08-23T01:15:07.515+0000”,
“计算机概述”初始录入日期:“2018-08-18”,
};
//在对象上循环
for(让p在obj中){
//创建您认为合适的新字符串
让newProp=p.replace(“计算机”、“com”)。replace(“通用”、“通用”)。replace(“初始”、“初始”)。replace(“输入”)。replace(“日期”);
//添加指向现有值的新键
obj[newProp]=obj[p];
}
console.log(obj);//更新对象
//然后您可以使用新密钥访问该属性

console.log(obj.com\u gen\u ini\u entu dat)如果只想缩短现有属性名,可以创建一个新的objecct,但可以在现有对象上创建第二组属性名(通过迭代键),只需映射回较长的属性名即可

让obj={
“计算机\u常规\u上次联系\u时间\u纪元”:1566522907515,
“计算机概述最后联系时间utc”:“2019-08-23T01:15:07.515+0000”,
“计算机概述”初始录入日期:“2018-08-18”,
};
//在对象上循环
for(让p在obj中){
//创建您认为合适的新字符串
让newProp=p.replace(“计算机”、“com”)。replace(“通用”、“通用”)。replace(“初始”、“初始”)。replace(“输入”)。replace(“日期”);
//添加指向现有值的新键
obj[newProp]=obj[p];
}
console.log(obj);//更新对象
//然后您可以使用新密钥访问该属性

console.log(obj.com\u gen\u ini\u entu dat)一个简单的解决方案是迭代输入对象的每个键,并对每个键执行以下操作,以计算要向其传递值的新键:

  • 按“389;”拆分关键字以从关键字中获取单词
  • 把每个单词剪成3个字母
  • 将修剪过的单词与“\u1”连接以获得新键
  • 在代码中,这可以表示为:

    让obj={
    “计算机\u常规\u上次联系\u时间\u纪元”:1566522907515,
    “计算机概述最后联系时间utc”:“2019-08-23T01:15:07.515+0000”,
    “计算机概述”初始录入日期:“2018-08-18”,
    };
    const newObj={};
    /*迭代obj中的键*/
    用于(输入obj){
    /*创建新关键字,按u分割关键字以提取单词,将每个单词修剪为三个
    字母,通过u再次连接修剪过的单词以获得新键*/
    const newKey=key.split(“”).map(word=>word.substr(0,3)).join(“”);
    /*将obj中的键值应用到具有新键值的新obj*/
    newObj[newKey]=obj[key];
    }
    
    console.log(newObj)一个简单的解决方案是迭代输入对象的每个键,并对每个键执行以下操作,以计算要向其传递值的新键:

  • 按“389;”拆分关键字以从关键字中获取单词
  • 把每个单词剪成3个字母
  • 将修剪过的单词与“\u1”连接以获得新键
  • 在代码中,这可以表示为:

    让obj={
    “计算机\u常规\u上次联系\u时间\u纪元”:1566522907515,
    “计算机概述最后联系时间utc”:“2019-08-23T01:15:07.515+0000”,
    “计算机概述”初始录入日期:“2018-08-18”,
    };
    const newObj={};
    /*迭代obj中的键*/
    用于(输入obj){
    /*创建新关键字,按u分割关键字以提取单词,将每个单词修剪为三个
    字母,通过u再次连接修剪过的单词以获得新键*/
    const newKey=key.split(“”).map(word=>word.substr(0,3)).join(“”);
    /*将obj中的键值应用到具有新键值的新obj*/
    newObj[newKey]=obj[key];
    }
    
    console.log(newObj)您的解决方案应包括两个阶段:

  • 创建属性“快照化”功能,即
  • 迭代初始对象属性并生成新属性:
  • 整个解决方案可以如下所示:

    const initialObject={
    “计算机\u常规\u上次联系\u时间\u纪元”:1566522907515,
    “计算机概述最后联系时间utc”:“2019-08-23T01:15:07.515+0000”,
    “计算机概述”初始录入日期:“2018-08-18”,
    };
    功能短路(str){
    返回str.split(“”“).map(word=>word.substr(0,3)).join(“”)
    }
    const newObject={};
    for(让输入initialObject){
    newObject[shortify(key)]=initialObject[key];
    }
    
    console.log(newObject)您的解决方案应包括两个阶段:

  • 创建属性“快照化”功能,即
  • 迭代初始对象属性并生成新属性:
  • 整个解决方案可以如下所示:

    const initialObject={
    “计算机\u常规\u上次联系\u时间\u纪元”:1566522907515,
    “计算机概述最后联系时间utc”:“2019-08-23T01:15:07.515+0000”,
    “计算机概述”初始录入日期:“2018-08-18”,
    };
    功能短路(str){
    返回str.split(“”“).map(word=>word.substr(0,3)).join(“”)
    }
    const newObject={};
    for(让输入initialObject){
    newObject[shortify(key)]=initialObject[key];
    }
    
    console.log(newObject)您可以执行以下操作:

    var obj={
    “计算机\u常规\u上次联系\u时间\u纪元”:1566522907515,
    “计算机\u常规\u最后\u控制”
    
    function shortify(str) {
        return str.split('_').map(word => word.substr(0, 3)).join('_')
    }
    
    const newObject = {};
    for (let key in originalObject) {
        newObject[shortify(key)] = originalObject[key];
    }