你可能会做这样的事情。
第一个replace
可用于替换您想要作为大写骆驼外壳标记的任何字符。
第二个replace
在标记后面的字母上执行骆驼大小写。
最后replace
确保标识符的第一个字母是小写的。
standardiseProperties
object
使用camelCase
. _ 但是您也可以让它返回新对象standardised
。
如果一个名称由于已经存在而不能使用,则使用原来的名称。
我没有花太多时间在这方面,很可能会有优化,或者您可能希望稍微更改规则。
Javascript
function camelCase(string) {
return string.replace(/[-+]/g, "_").replace(/_([\da-z])/gi, function (all, letter) {
return letter.toUpperCase();
}).replace(/^([A-Z])/, function (all, letter) {
return letter.toLowerCase();
});
}
function standardiseProperties(object) {
var standardised = {},
newName,
i;
for (i in object) {
if (object.hasOwnProperty(i)) {
newName = camelCase(i);
if (standardised.hasOwnProperty(newName)) {
standardised[i] = object[i];
} else {
standardised[newName] = object[i];
}
delete object[i];
}
}
for (i in standardised) {
object[i] = standardised[i];
}
}
var object = {
"firstName": "Joe",
"MiddleName": "Roy",
"last_name": "Fool"
};
console.log(object);
standardiseProperties(object);
console.log(object);
输出
Object {firstName: "Joe", MiddleName: "Roy", last_name: "Fool"}
Object {firstName: "Joe", middleName: "Roy", lastName: "Fool"}
在jsfiddle 上