5

可能重复:
Javascript 等效于 PHP 的 list()

我想要这条线的等价物,但在 JavaScript 中:

<?php list($Id, $Iduser, $Idmany) = explode("," , $IdALL); ?>

在哪里 :

$IdALL = '1, 2, 3';

有什么方法可以用 JavaScript 做到这一点,并且所有现代浏览器都可以支持吗?

4

3 回答 3

7
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);
于 2012-12-01T11:31:45.687 回答
1

不,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]是另一种选择;此答案将详细说明)。

于 2012-12-01T11:27:18.557 回答
1

请查看网站: http: //phpjs.org/functions/

在这里,您想要 php 到 js 中可用的所有功能。

于 2012-12-01T11:31:28.107 回答