関数が非常に便利であることがわかりましcompact
た(phpで)。これが何をするかです:
$some_var = 'value';
$ar = compact('some_var');
//now $ar is array('some_var' => 'value')
したがって、要素のキーが変数名の場合、指定した変数から配列を作成します。javascript にはどんな種類の関数がありますか?
関数が非常に便利であることがわかりましcompact
た(phpで)。これが何をするかです:
$some_var = 'value';
$ar = compact('some_var');
//now $ar is array('some_var' => 'value')
したがって、要素のキーが変数名の場合、指定した変数から配列を作成します。javascript にはどんな種類の関数がありますか?
いいえ、類似の関数はなく、現在のコンテキストの変数名/値を取得する方法もありません。それらが の「グローバル」変数である場合のみですwindow
。これはお勧めできません。もしそうなら、あなたはこれを行うことができます:
function compact() {
var obj = {};
Array.prototype.forEach.call(arguments, function (elem) {
obj[elem] = window[elem];
});
return obj;
}
変数がグローバル スコープ内にない場合でも、可能性はありますが実用的ではありません。
function somefunc() {
var a = 'aaa',
b = 'bbb';
var compact = function() {
var obj = {};
for (var i = 0; i < arguments.length; i++) {
var key = arguments[i];
var value = eval(key);
obj[key] = value;
}
return obj;
}
console.log(compact('a', 'b')) // {a:'aaa',b:'bbb'}
}
良いニュースは、ES6 にはまさにこれを行う新しい機能があることです。
var a=1,b=2;
console.log({a,b}) // {a:1,b:2}