Underscore.js を使用してオブジェクトをステップ実行し、各値を変換/難読化しようとしています。
{
"weather": "Cloudy",
"degrees": 90
}
になります:
{
"weather": "Claido",
"degrees": 21
}
完全に理解できない理由 - JSON オブジェクトの構造を損なうことなく難読化しようとしています。文字列の場合は、任意の母音を別のランダムな母音に置き換えます。数字の場合は、別のランダムな数字を選択するだけで、ブール値がランダムに設定されます。各要素タイプの操作を作成できます。再帰的に行う方法がわかりました。
私はこのようなことができます:
var t = { "weather":"Cloudy", "degrees": 12, "snowing": false };
var newObj = {};
var g = _.each(t, function(value, key, list) {
if (_.isString(value)){
newObj[key] = value.replace(/[aeiou]/gi, '');
}
if (_.isNumber(value)){
var n = Math.floor((Math.random()*10)+1);
newObj[key] = n + value;
}
if (_.isBoolean(value)){
newObj[key] = Math.random() >= 0.5;
}
});
console.log(newObj);
そして、すべて順調です。問題は、次のような配列とネストされたオブジェクトにあります。
{
"weather": "Cloudy",
"outsideWeather": {
"forecast": "Stormy",
"outside": 48
},
"degrees": 12,
"snowing": false
}
私の単純なスイッチケースはその時点で故障します。各値を再帰的にステップ実行して変換し、オブジェクトを元の構造に戻す方法はありますか?
どうもありがとう