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

JavaScript - ค้นหาระยะห่างระหว่างรายการใน array


สมมติว่าเรามีอาร์เรย์ (เพิ่มขึ้น) เรียงลำดับของตัวเลขเช่นนี้ -

const arr = [2, 5, 7, 8, 9];

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว ฟังก์ชันควรสร้างอาร์เรย์ย่อยใหม่สำหรับแต่ละองค์ประกอบของอาร์เรย์อินพุต

อาร์เรย์ย่อยควรมีความแตกต่าง (ความแตกต่างระหว่างองค์ประกอบนั้นกับองค์ประกอบที่ตามมาทีละรายการ)

ดังนั้นสำหรับองค์ประกอบอาร์เรย์แรก ความแตกต่างคือ −

5 - 2 = 3
7 - 2 = 5
8 - 2 = 6
9 - 2 = 7

ดังนั้น subarray สำหรับองค์ประกอบแรกควรเป็น −

[3, 5, 6, 7]

ในทำนองเดียวกัน สำหรับองค์ประกอบที่สอง ควรเป็น −

[2, 3, 4]

สำหรับองค์ประกอบที่สาม −

[1, 2]

ที่สี่ −

[1]

และเนื่องจากองค์ประกอบที่ห้าเป็นองค์ประกอบสุดท้าย จึงไม่เหลือรายการใดเลย ดังนั้นเราจึงไม่พิจารณาองค์ประกอบสุดท้าย

ดังนั้น ผลลัพธ์สำหรับอาร์เรย์แบบเต็มควรเป็น −

const output = [
   [3, 5, 6, 7],
   [2, 3, 4],
   [1, 2],
   [1]
];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [2, 5, 7, 8, 9];
const distanceBetween = (arr,r = []) => {
   if(r.length <= arr.length-2) {
      let temp = [];
      let b = arr[r.length];
      arr.forEach(e => temp.push(e - b));
      r.push(temp.filter(e => e > 0));
      return distanceBetween(arr,r);
   } else {
      return r;
   };
}
console.log(distanceBetween(arr));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[ [ 3, 5, 6, 7 ], [ 2, 3, 4 ], [ 1, 2 ], [ 1 ] ]