跳到主要内容

经典题目

在一个数组 Array 中有 A、B、C、D 四个元素,现需要得到它们全排列的结果

  • 实现

    :::details 点击查看代码

    function Permutation(array) {
    const length = array.length;
    const result = [];
    /**
    * @description: 排列算法
    * @param {*} FinishedArray 已排列好的数组
    * @param {*} awaitArray 待排列的数组
    */
    function arrange(finishedArray, awaitArray) {
    if (finishedArray.length == length) {
    /**
    * @description: 如果 已排列好的数组长度 等于 原数组长度,递归结束
    */
    // result.push(finishedArray); 结果:元素为 数组
    result.push(finishedArray.join("")); //结果: 元素为 字符串
    } else {
    awaitArray.forEach((item, index) => {
    let temp = [].concat(awaitArray);
    temp.splice(index, 1);
    arrange(finishedArray.concat(item), temp);
    });
    }
    }
    arrange([], array);
    return result;
    }

    /**
    * @description: 测试排列算法
    */
    console.log(Permutation(["上", "下", "左", "右"]));

    :::