สมมติว่าเรามีสองอาร์เรย์ ตัวอย่างเช่น ให้พิจารณาสองอาร์เรย์ต่อไปนี้ −
const array1 = ['a','b','c','d','e','f','g','h']; const array2 = [ 1, 0, 0, 1 , 0, 0, 1, 0];
อาร์เรย์ทั้งสองถูกผูกไว้เพื่อมีความยาวเท่ากัน เราจำเป็นต้องเขียนฟังก์ชันที่เมื่อได้รับองค์ประกอบจากอาร์เรย์ที่สอง ให้คืนค่าอาร์เรย์ย่อยจากอาร์เรย์แรกขององค์ประกอบทั้งหมดที่มีดัชนีตรงกับดัชนีขององค์ประกอบที่เราใช้เป็นอาร์กิวเมนต์ในอาร์เรย์ที่สอง
ตัวอย่างเช่น findSubArray(0) ควรส่งคืน −
[‘b’, ‘c’, ‘e’, ‘f’, ‘h’]
เนื่องจากสิ่งเหล่านี้เป็นองค์ประกอบที่มีอยู่ในอาร์เรย์แรกบนดัชนี 1, 2, 4, 5, 7 ซึ่งอยู่ในอาร์เรย์ที่สอง 0's
ดังนั้น ตอนนี้ เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
ตัวอย่าง
const array1 = ['a','b','c','d','e','f','g','h']; const array2 = [ 1, 0, 0, 1 , 0, 0, 1, 0]; const findSubArray = (first, second, el) => { if(first.length !== second.length){ return false; }; return second.reduce((acc, val, ind) => { if(val === el){ acc.push(first[ind]); }; return acc; }, []); }; console.log(findSubArray(array1, array2, 0)); console.log(findSubArray(array1, array2, 1));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ 'b', 'c', 'e', 'f', 'h' ] [ 'a', 'd', 'g' ]