สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มเรียงตามลำดับที่เพิ่มขึ้นเช่นนี้ -
const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18];
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว ฟังก์ชันควรจัดกลุ่มอาร์เรย์ในลักษณะที่ −
-
องค์ประกอบภายในกลุ่มมีความแตกต่าง 1 หรือน้อยกว่า
-
องค์ประกอบแต่ละกลุ่มควรมีองค์ประกอบมากกว่าหนึ่งรายการเพื่อให้ถือว่าถูกต้อง
ตามเงื่อนไขข้างต้น ผลลัพธ์ที่คาดหวังจะเป็น −
const output = [ [1, 2, 3], [5, 6, 7], [17, 18] ];
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18]; const groupNear = (arr = []) => { const res = []; for (let ind = 0; ind < arr.length; ind++) { let value = arr[ind]; if (arr[ind − 1] + 1 === value) { res[res.length − 1].push(value); } else if (value + 1 === arr[ind + 1]) { res.push([value]); }; }; return res; }; console.log(groupNear(arr));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ [ 1, 2, 3 ], [ 5, 6, 7 ], [ 17, 18 ] ]