[{" abc":{" xyz":{ " jpy":{}}}}]
答案 0 :(得分:2)
你可以使用一个级别计数,只对小写键采用第一级,对大写键采用所有其他级别。
function change(object, level) {
level = level + 1 || 0;
if (!object) {
return;
}
if (Array.isArray(object)) {
object.forEach(function (o) { change(o, level); });
return;
}
Object.keys(object).forEach(function (k) {
var key = k[level === 1 ? 'toLowerCase' : 'toUpperCase']();
change(object[k], level);
if (key !== k) {
object[key] = object[k];
delete object[k];
}
});
}
var array = [{ "BITFLYER": { "BTC": { "jpy": {} }, "ETH": { "BTC": {} }, "bch": { "BTC": {} }, "future": { "BTCJPY19JAN2018": {}, "BTCJPY26JAN2018": {} } } }, { "BITSTAMP": { "BTC": { "JPY": {} }, "ETH": { "BTC": {} }, "bch": { "BTC": {} } } }];
change(array);
console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:0)
这就像@NinaSholz的答案,但使用了一些稍微不同的技巧。首先,将整个数组转换为大写字符串,然后使用--user
将第一级键转换为小写。
hasOwnProperty