javascript中是否有类似于compact from php的函数?
Is there a function in javascript similar to compact from php?
我发现compact
函数非常有用(在php)。下面是它的作用:
$some_var = 'value';
$ar = compact('some_var');
//now $ar is array('some_var' => 'value')
所以它从你指定的变量创建数组,当键为元素的变量名。javascript中有什么函数吗
你可以使用ES6/ES2015对象初始化器
例子:
let bar = 'bar', foo = 'foo', baz = 'baz'; // declare variables
let obj = {bar, foo, baz}; // use object initializer
console.log(obj);
{bar: 'bar', foo: 'foo', baz: 'baz'} // output
注意浏览器兼容性,你总是可以使用Babel
不,没有类似的函数,也没有任何方法可以获取当前上下文的变量名/值——只有当它们是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'}
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}
相关文章:
- 执行php函数的onclick事件的其他替代方案
- 使用ajax用jquery调用php函数
- php函数的ajax html$_POST值返回null
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 如何使用OnClick事件通过参数调用来调用PHP函数
- php javascript代码从javascript调用php函数
- 将位置变量从Javascript传递到PHP函数
- 当使用答案运行PHP函数时,会弹出是/否警报
- PHP函数的返回看起来如何对AJAX和PHP有效
- PHP 函数不会向 JavaScript 变量返回值
- 如何从jQuery调用PHP函数
- php函数的XMLHttpRequest响应不包含任何数据
- 如何创建php函数或任何脚本/jquery Javascript,使我能够获取与复选框关联的值并添加它们
- 从Javascript函数调用PHP函数
- 使用Ajax将数组从javascript发布到php函数
- PHP函数识别3个数字中最低的一个并更改其类
- 使用AJAX将变量发布到不同文件上的php函数并调用该函数
- 使用ajax从javascript/jquery调用php函数
- PHP函数调用和Javascript代码中的数组传递
- 如何在关闭浏览器的同时执行php函数