Javascript-如果某些键有空格,则分解对象

Javascript-如果某些键有空格,则分解对象,javascript,object,Javascript,Object,我必须处理一个松散的对象数据字段,其中一些键有空格,一些没有空格,一些大写,一些没有空格。我一直在手动分配变量,如下所示: const comments = data.fields["Additional Location Comments"]; const autoNumber = data.fields.Autonumber; const category = data.fields.category; const categorySymbol = data.fields

我必须处理一个松散的对象数据字段,其中一些键有空格,一些没有空格,一些大写,一些没有空格。我一直在手动分配变量,如下所示:

const comments = data.fields["Additional Location Comments"];
const autoNumber = data.fields.Autonumber;
const category = data.fields.category;
const categorySymbol = data.fields["Category Symbol"];
const currentLocation = data.fields["Current Location"];
const dateModified = data.fields["Date Modified"];
const deliveryLocation = data.fields["Delivery Location"];
const description = data.fields.Desctiption;
const dimensions = data.fields.Dimensions;
const favorites = data.fields.Favorites;
const itemUrl = data.fields["ITEM URL"];
const image = data.fields.Image;
我将如何对其进行分解并重命名密钥,使其类似于这样

const {
  additionalLocationComments,
  autoNumber,
  category,
  categorySymbol,
  currentLocation,
  dateModified,
  deliveryLocation,
  description,
  dimensions,
  favorites,
  itemUrl,
  image,
} = data.fields;

您可以做的是循环遍历所有键,然后将它们转换为驼峰大小写,并将旧键中的数据添加到新键中

const oldob={ 一个考验:1,, 另一个测试:3, 好的,还有一个:4 }; 设newob={}; 常数camelCase=str=>{ 返回str.replace/?:^\w |[A-Z]|\b\w/g,functionword,index { 返回索引==0?word.toLowerCase:word.toUpperCase; }.替换/\s+/g; } Object.keysoldob.forEachkey=>{ newob[camelCasekey]=oldob[key]; };
console.lognewob 您可以做的是循环遍历所有键,然后将它们转换为驼峰大小写,并将旧键中的数据添加到新键中

const oldob={ 一个考验:1,, 另一个测试:3, 好的,还有一个:4 }; 设newob={}; 常数camelCase=str=>{ 返回str.replace/?:^\w |[A-Z]|\b\w/g,functionword,index { 返回索引==0?word.toLowerCase:word.toUpperCase; }.替换/\s+/g; } Object.keysoldob.forEachkey=>{ newob[camelCasekey]=oldob[key]; };
console.lognewob 我会像下面这样做。最重要的方面是一个函数,该函数将给定字符串转换为其大小写等效项:

功能性病例{ s=s.replace/\b\w/g,m=>m.toUpperCase .replace/[A-Z]{2,}/g,m=>m[0]+m.slice1.toLowerCase .替换/\W/g; 返回s[0]。toLowerCase+s.1; } 函数cleanObjectobj{ 返回Object.fromEntriesObject.EntriesObject.map[k,v]=>[camelCasek,v]; } 设字段={ 其他位置注释:1, 自动编号:2, 类别:3, 类别代号:4, 当前位置:5, 项目URL:6, 已确诊病例:7例 };
console.logcleanObjectfields 我会像下面这样做。最重要的方面是一个函数,该函数将给定字符串转换为其大小写等效项:

功能性病例{ s=s.replace/\b\w/g,m=>m.toUpperCase .replace/[A-Z]{2,}/g,m=>m[0]+m.slice1.toLowerCase .替换/\W/g; 返回s[0]。toLowerCase+s.1; } 函数cleanObjectobj{ 返回Object.fromEntriesObject.EntriesObject.map[k,v]=>[camelCasek,v]; } 设字段={ 其他位置注释:1, 自动编号:2, 类别:3, 类别代号:4, 当前位置:5, 项目URL:6, 已确诊病例:7例 };
console.logcleanObjectfields;这回答了你的问题吗?这回答了你的问题吗?