JSオブジェクトにドット表記で直列化されたオブジェクトを変換する機能を改善:Iがオブジェクトにデシリアライズする必要がある文字列<code>"presentation.launchBehavior.newWindow"</code>を有する
var obj = {presentation: {launchBehavior: 'newWindow'}}
ドット後の最後の文字列値であるべきで、他の文字列ながら文字列に変換する必要があります。それは働いて
function des(obj, property, index, ar) {
var isLastCall = ar.length - 1 === index;
if (isLastCall) {
return;
}
var isNextLastCall = ar.length - 2 === index;
if (isNextLastCall) {
obj[property] = ar[ar.length - 1];
return obj;
} else {
obj[property] = {};
return obj[property];
}
}
var obj = {};
"presentation.launchBehavior.newWindow".split(".").reduce(des, obj);
obj.presentation.launchBehavior // newWindow
が、私が代わりに関数の外の変数を作成することの結果のオブジェクトを返すようにそれを改善したいと思います:私はそれを行うための関数を書きました。どうやってやるの?多分、機能の内部も改善することができます。
あなたが動作するコードを改善したい場合は、[codereview.se]に投稿しなければなりません。 –