【问题标题】:JavaScript construct equivalent to PHP's list()? [duplicate]JavaScript 构造等价于 PHP 的 list()? [复制]
【发布时间】:2012-01-15 08:26:00
【问题描述】:

可能重复:
Javascript equivalent of PHP's list()

在 PHP 中你可以像这样进行赋值:

list($b,$c,$d) = array("A","B","C");

在 JS 中有这样的东西吗?

【问题讨论】:

    标签: php javascript phpjs


    【解决方案1】:

    是的,这是可能的,因为JavaScript 1.7

    你可以这样做:

    function f() {  
      return [1, 2];  
    }  
    
    [a, b] = f();
    

    【讨论】:

    • 很遗憾,需要支持IE7 :(
    • 我不相信这在 Opera 中有效。有谁知道这在strict mode 中是否有效?
    • 在这种情况下,您将不得不避免使用该功能:(
    • @btleffler:你可以在那个页面上查看:robertnyman.com/javascript/javascript-1.7.html
    【解决方案2】:

    我相信这是在 JavaScript 1.7 中引入的。这意味着您还不能在大多数浏览器中真正使用它。

    [a,b] = [14,15];
    // or
    [a,b] = [b,a];
    // or
    [a,b] = someFuncThatReturnsArray();
    

    更多详情请见MDN

    【讨论】:

    • 真牛逼,我要支持IE7。
    【解决方案3】:

    人们似乎讨厌 javascript 中的 with() 构造,但无论如何...

    function f(){return {a:1, b:2};}
    with(f()) {
        alert(a);//1
    }
    
    
    // or
    function combine(propertyNames, values) {
        var o = {};
        for (var i=0; i<propertyNames.length; i++) {
            o[propertyNames[i]] = values[i];
        }
        return o;
    }
    
    with (combine(['a', 'b'], [1, 2])) {
        alert(b);//2
    }
    

    【讨论】:

    • 这是哪个版本的JS? IE7支持吗?
    猜你喜欢
    • 1970-01-01
    • 2010-12-29
    • 2011-05-29
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2020-04-23
    • 2015-02-10
    相关资源
    最近更新 更多