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

รับองค์ประกอบของอาร์เรย์ขึ้นอยู่กับค่าที่สอดคล้องกันของ JavaScript อื่น


สมมติว่าเรามีสองอาร์เรย์ ตัวอย่างเช่น ให้พิจารณาสองอาร์เรย์ต่อไปนี้ −

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' ]