สมมติว่าเรามีสองอาร์เรย์ ตัวอย่างเช่น ให้พิจารณาสองอาร์เรย์ต่อไปนี้ −
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' ]