迭代两个变量的所有排列

Ant*_*ald 5 javascript

我需要调用以下函数cross4次,对于xy变量的所有排列,值为1和-1;

我的方法:

var p = [-1, 1];

p.forEach(function(x) {
  p.forEach(function(y) {
    cross(x, y);
  });
});
Run Code Online (Sandbox Code Playgroud)

有没有更短的方法这样做?

bhs*_*cer 1

调用函数会产生一些开销。例如,将返回指针放在堆栈上。使用两个 for 循环而不是回调 forEach 可能会稍微快一些。

var p = [-1, 1];
for (var x = 0; x < p.length; x++) {
    for (var y = 0; y < p.length; y++) {
        cross(p[x], p[y]);
    } 
}
Run Code Online (Sandbox Code Playgroud)