Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จะแทรกองค์ประกอบลงในตำแหน่งทั้งหมดในอาร์เรย์โดยใช้การเรียกซ้ำ - JavaScript ได้อย่างไร


เราจำเป็นต้องประกาศฟังก์ชัน สมมติว่า 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 ] ]