Sel*_*gam 17
从你的评论,
例如,像这些将为内部密钥失败{:"约翰","时代":"21","性":"男","地方":"名" {"状态":"CA"}}
您可能需要对此类情况使用递归.见下文,
var output = allKeysToUpperCase(obj);
function allKeysToUpperCase(obj) {
var output = {};
for (i in obj) {
if (Object.prototype.toString.apply(obj[i]) === '[object Object]') {
output[i.toUpperCase()] = allKeysToUpperCase(obj[i]);
} else {
output[i.toUpperCase()] = obj[i];
}
}
return output;
}
Run Code Online (Sandbox Code Playgroud)
产量

一个简单的循环应该可以做到,
var output = {};
for (i in obj) {
output[i.toUpperCase()] = obj[i];
}
Run Code Online (Sandbox Code Playgroud)
您不能直接在给定对象上更改键,但是如果要在原始对象上进行此更改,则可以保存新的大写键并删除旧的键:
function changeKeysToUpper(obj) {
var key, upKey;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
upKey = key.toUpperCase();
if (upKey !== key) {
obj[upKey] = obj[key];
delete(obj[key]);
}
// recurse
if (typeof obj[upKey] === "object") {
changeKeysToUpper(obj[upKey]);
}
}
}
return obj;
}
var test = {"name": "john", "Age": "21", "sex": "male", "place": {"state": "ca"}, "family": [{child: "bob"}, {child: "jack"}]};
console.log(changeKeysToUpper(test));Run Code Online (Sandbox Code Playgroud)
仅供参考,此函数还可以防止再次修改继承的可枚举属性或方法。
| 归档时间: |
|
| 查看次数: |
9413 次 |
| 最近记录: |