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];
}