rhs を lhs の型に変換する関数を検索します。例えば
var x=false // x is boolean now;
x=assign (x, "true"); //should convert "true" to boolean and return that
x=assign (x, 1); // dto, convert 1 to true
x=0 // x is number
x=assign (x, "123"); // should convert "123" to 123;
そのような関数を書くことができるので、それは問題ではありません。しかし:そのようなことの何とか完全な実装はどこかにありますか?私はそのようなものから始めました:
function assign (v, x) {
if (typeof v==typeof x) {
return x;
}
switch (typeof v) {
case 'boolean' : {
return x=='true'?true:false;
}
case 'number' : {
return parseFloat(x);
}
}
return "xxx";
}
var v=true;
var x='true';
var r1=assign (v, x);
console.log (typeof r1+ " "+r1);
v=10;
x="123";
var r1=assign (v, x);
console.log (typeof r1+ " "+r1);
もちろん、これは完全ではありませんが、おそらく私が何を求めているかを示しています。