Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาสมาชิกที่มีตัวก่อนและตัวหลังอยู่ในอาร์เรย์ด้วย JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์จำนวนเต็มเป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องสร้างและคืนอาร์เรย์ใหม่ที่มีสมาชิกทั้งหมดจากอาร์เรย์เดิมที่มีทั้งตัวก่อนหน้า (predecessor) และตัวถัดไป (successor) อยู่ในอาร์เรย์ นั่นคือ ถ้าตัวเลข num อยู่ในอาร์เรย์เดิม ควรอยู่ในอาร์เรย์ผลลัพธ์ก็ต่อเมื่อ num-1 และ num+1 ก็อยู่ในอาร์เรย์ด้วย

ตัวอย่าง

ถ้าอาร์เรย์นำเข้าคือ:

const arr = [4, 6, 8, 1, 9, 7, 5, 12];

ผลลัพธ์ควรเป็น:

const output = [6, 8, 7, 5];

ตัวอย่างโค้ด

const arr = [4, 6, 8, 1, 9, 7, 5, 12];
const pickMiddleElements = (arr = []) => {
  const res = [];
  for(let i = 0; i < arr.length; i++) {
    const num = arr[i];
    const hasBefore = arr.includes(num - 1);
    const hasAfter = arr.includes(num + 1);
    if(hasBefore && hasAfter) {
      res.push(num);
    }
  }
  return res;
};
console.log(pickMiddleElements(arr));

ผลลัพธ์

[6, 8, 7, 5]