我发现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;
}
您还可以使用phpjs 库在 javascript 中使用与 php 相同的功能
var1 = 'Kevin'; var2 = 'van'; var3 = 'Zonneveld';
compact('var1', 'var2', 'var3');
{'var1': 'Kevin', 'var2': 'van', 'var3': 'Zonneveld'}
如果变量不在全局范围内,它仍然是可能的,但不切实际。
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}