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 อยู่

ตอนนี้มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน:

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

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