You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript从数字数组中生成所有2元素有序排列组合

JavaScript 实现数组二元有序排列

实现思路

有序排列要求两个元素位置不同、顺序不同视为独立结果,我们可以通过双层遍历实现:

  • 第一层遍历取排列的第一个元素
  • 第二层遍历取排列的第二个元素,排除下标和第一层相同的情况
  • 每次匹配成功就把两个元素组成的数组存入结果集

代码实现

基础循环写法

兼容性好,逻辑清晰,适合所有场景:

function getTwoElementPermutations(numbers) {
  const result = [];
  for (let firstIdx = 0; firstIdx < numbers.length; firstIdx++) {
    for (let secondIdx = 0; secondIdx < numbers.length; secondIdx++) {
      if (firstIdx !== secondIdx) {
        result.push([numbers[firstIdx], numbers[secondIdx]]);
      }
    }
  }
  return result;
}

// 测试
const numbers = [1,2,3];
console.log(getTwoElementPermutations(numbers));
// 输出符合要求:[[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]

函数式写法

代码更简洁,适合现代JS工程场景:

const getTwoElementPermutations = numbers => 
  numbers.flatMap((first, firstIdx) => 
    numbers.filter((_, secondIdx) => firstIdx !== secondIdx)
           .map(second => [first, second])
  );

内容的提问来源于stack exchange,提问作者Daywison Ferreira Leal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:48:01