เราจำเป็นต้องประกาศฟังก์ชัน สมมติว่า insertAllPositions ซึ่งรับสองอาร์กิวเมนต์ -
องค์ประกอบ x และอาร์เรย์ arr ฟังก์ชันต้องส่งคืนอาร์เรย์ของอาร์เรย์ โดยแต่ละอาร์เรย์ที่สอดคล้องกับ arr โดยใส่ x ในตำแหน่งที่เป็นไปได้
นั่นคือ ถ้า arr คือความยาว N ผลลัพธ์ก็คืออาร์เรย์ที่มีอาร์เรย์ N + 1 -
ตัวอย่างเช่น ผลลัพธ์ของ insertAllPositions(10, [1,2,3]) ควรเป็น −
คอนสต์เอาท์พุต =[ [10,1,2,3], [1,10,2,3], [1,2,10,3], [1,2,3,10]];ก่อน>เราจำเป็นต้องเขียนฟังก์ชันนี้โดยใช้การเรียกซ้ำเท่านั้น
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr =[1, 2, 3];const num =10;const insertAllPositions =(num, arr) => { return arr.length ? [[num, ...arr]] .concat(insertAllPositions(num, arr.slice(1)) .map(el => { return [arr[0]].concat(el); })) :[[ num]]};console.log(insertAllPositions(num, arr));ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้บนคอนโซล -
[ [ 10, 1, 2, 3 ], [ 1, 10, 2, 3 ], [ 1, 2, 10, 3 ], [1, 2, 3, 10 ] ]