代码之家  ›  专栏  ›  技术社区  ›  jorgen

自定义列表的两级“for”循环

  •  0
  • jorgen  · 技术社区  · 9 年前

    使用两级 for 回路和 seq 工作正常,代码

    for i in `seq 0 3`; do for j in `seq 0 3`; do echo $i $j; done; done
    

    给出预期输出:

    0 0
    0 1
    1 0
    1 1
    

    但是,如果我想要一个更定制的数字列表:

    for i in '-1 4.5'; do for j in '0 -2.2'; do echo $i $j; done; done
    

    我得到了输出

    -1 4.5 0 -2.2
    

    有没有一种简单的方法可以做到这一点?

    2 回复  |  直到 9 年前
        1
  •  1
  •   user4832408 user4832408    9 年前

    使用单记号会阻止shell标记提供给 for 循环:

    #!/bin/sh
    
    for i in -1 4.5
    do  for j in 0 -2.2
        do  # -- keeps the highly portable printf utility from 
            # interpreting '-' as an argument 
            printf -- "$i" "$j\n" 
        done
    done
    
        2
  •  1
  •   STORM    9 年前
    var a = [1,2,3];
    var b = [1,2,3];
    
    for (i in a) {
        for (j in b) {
            alert (i + j);
        }
    }
    

    我还创建了一个jsfiddle: http://jsfiddle.net/f8k5tpqm/1/