1

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
}

私の単純なスイッチケースはその時点で故障します。各値を再帰的にステップ実行して変換し、オブジェクトを元の構造に戻す方法はありますか?

どうもありがとう

4

3 に答える 3