function lowerPropertyNames(obj) {
if (obj == null) {
return;
}
if (typeof obj != 'object') {
return;
}
if (isArray(obj) && obj.length > 0) {
// iterate over array obj
for (var index in obj) {
lowerPropertyNames(obj[index]);
}
} else {
// iterate over object obj
var props = Object.keys(obj);
var propNums = props.length;
if (propNums == 0) {
return;
}
for (var index = 0; index < propNums; index++) {
var prop = props[index];
var prop_lowercase = prop.toLowerCase();
if (prop_lowercase !== prop) {
obj[prop_lowercase] = obj[prop];
delete obj[prop];
}
if (typeof obj[prop_lowercase] == 'object') {
lowerPropertyNames(obj[prop_lowercase]);
}
}
}
function isArray(o) {
return typeof o === "object" &&
Object.prototype.toString.call(o) === "[object Array]";
};
}
//基于原型的方法
Object.prototype.propertyToLowerCase = function () {
lowerPropertyNames(this);
function lowerPropertyNames(obj) {
if (obj == null) {
return;
}
if (typeof obj != 'object') {
return;
}
if (isArray(obj) && obj.length > 0) {
// iterate over array obj
for (var index in obj) {
lowerPropertyNames(obj[index]);
}
} else {
// iterate over object obj
var props = Object.keys(obj);
var propNums = props.length;
if (propNums == 0) {
return;
}
for (var index = 0; index < propNums; index++) {
var prop = props[index];
var prop_lowercase = prop.toLowerCase();
if (prop_lowercase !== prop) {
obj[prop_lowercase] = obj[prop];
delete obj[prop];
}
if (typeof obj[prop_lowercase] == 'object') {
lowerPropertyNames(obj[prop_lowercase]);
}
}
}
function isArray(o) {
return typeof o === "object" &&
Object.prototype.toString.call(o) === "[object Array]";
};
}
}
将JavaScript对象property name变成小写
最新推荐文章于 2023-08-31 08:32:22 发布