Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ตรวจสอบความเท่ากันของอาร์เรย์ตามลำดับ (Sequence-dependent Equality) - JavaScript

เปรียบเทียบสองอาร์เรย์ ว่าตำแหน่งเดียวกันมีค่าเท่ากันกี่ตำแหน่ง (Position-wise Equality)

ตัวอย่าง

arr1 = [4, 7, 4, 3, 3, 3, 7, 6, 5]
arr2 = [6, 5, 4, 5, 3, 2, 5, 7, 5]
Match at index: 4, 7, 8 → Count: 3

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

const correspondingEquality = (arr1, arr2) => {
  let count = 0;
  for (let i = 0; i < arr1.length; i++) {
    if (arr1[i] === arr2[i]) count++;
  }
  return count;
};

console.log(correspondingEquality(
  [4, 7, 4, 3, 3, 3, 7, 6, 5],
  [6, 5, 4, 5, 3, 2, 5, 7, 5]
));

ผลลัพธ์

3

วิธีแบบ Functional

const correspondingEquality = (a, b) => 
  a.reduce((count, val, i) => count + (val === b[i] ? 1 : 0), 0);

ใช้ reduce นับตำแหน่งที่เท่ากัน