我想要这条线的等价物,但在 JavaScript 中:
<?php list($Id, $Iduser, $Idmany) = explode("," , $IdALL); ?>
在哪里 :
$IdALL = '1, 2, 3';
有什么方法可以用 JavaScript 做到这一点,并且所有现代浏览器都可以支持吗?
我想要这条线的等价物,但在 JavaScript 中:
<?php list($Id, $Iduser, $Idmany) = explode("," , $IdALL); ?>
在哪里 :
$IdALL = '1, 2, 3';
有什么方法可以用 JavaScript 做到这一点,并且所有现代浏览器都可以支持吗?
var values = "1, 2, 3".split(", ");
var keys = ["Id", "Iduser", "Idmany"];
var final = {};
for(var i = 0; i < values.length; i++){
final[keys[i]] = values[i];
}
当然,以牺牲可读性为代价,您可以在 for 语句中执行所有这些操作:
for(var i = 0, values = "1, 2, 3".split(", "), keys = ["Id", "Iduser", "Idmany"], final = {}; i < values.length; i++){
final[keys[i]] = values[i];
}
然后可以按如下方式访问变量:
alert(final.Id);
alert(final.Iduser);
alert(final.Idmany);
不,JavaScript 目前没有等效的list
构造(称为“解构赋值”)。您必须单独分配变量。ES.next 很可能有这方面的东西,但不是当前的 ES5(或旧浏览器上的 ES3)。
所以你能做的最好的事情就是有点尴尬:
var idAll = "1, 2, 3";
var parts = idAll.split(/\s*,\s*/);
var id = parts[0];
var idUser = parts[1];
var idMany = parts[2];
请注意,ID 将是字符串;如果您希望它们是数字,则必须解析它们(parseInt
是一种选择,将 a+
放在等前面parts[0]
是另一种选择;此答案将详细说明)。
请查看网站: http: //phpjs.org/functions/
在这里,您想要 php 到 js 中可用的所有功能。