以下是实现该功能的 JavaScript 代码示例:
function flattenArray(array) { return array.reduce(function(a, b) { return a.concat(Array.isArray(b) ? flattenArray(b) : b); }, []); }
function chooseOrder(array, order) { return array.filter(function(value) { return order.indexOf(value) !== -1; }).join(''); }
function flattenAndChoose(array, order) { var flatArray = flattenArray(array); return chooseOrder(flatArray, order); }
var arr = [[1, 2], [3, [4, 5]], [6]]; var order = [5, 2, 3, 6, 1, 4]; var result = flattenAndChoose(arr, order); console.log(result); // output: "5216314"
首先,我们定义了一个名为 "flattenArray" 的函数,它使用 reduce() 方法来递归地将多维数组拉平为一维数组。
然后,我们定义了名为 "chooseOrder" 的函数,它使用 filter() 方法来仅保留在指定顺序中的值,并使用 join() 方法将它们变为单个字符串。
最后,我们定义了 "flattenAndChoose" 函数,该函数使用 flattenArray() 方法将多维数组变为均为值的单个一维数组,然后使用 chooseOrder() 方法按指定顺序过滤和组合剩余的值。
我们的示例使用了一个名为 "arr" 的多维数组和一个名为 "order" 的选择顺序数组,然后调用 "flattenAndChoose()" 函数并将结果打印到控制台。