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

การแมปอะนากรามให้ตรงกันใน JavaScript

อาร์เรย์อะนากราม (Anagram arrays)

อาร์เรย์หนึ่งเป็นอะนากรามของอีกอาร์เรย์ ถ้าเราสามารถสุ่มลำดับสมาชิกของอาร์เรย์นั้นเพื่อให้ได้อีกอาร์เรย์หนึ่ง

เช่น [1, 2, 3] และ [2, 1, 3] เป็นอะนากรามกัน

สมมติว่าเรามีสองอาร์เรย์ arr1 และ arr2 ที่เป็นอะนากรามกัน เราต้องเขียนฟังก์ชันที่รับสองอาร์เรย์นี้และคืนอาร์เรย์แมปปิ้งความยาวเท่ากับ arr1 และ arr2 อาร์เรย์แมปปิ้งควรมีดัชนีของสมาชิก arr1 ตามที่ปรากฏใน arr2

ตัวอย่าง

ถ้าสองอาร์เรย์นำเข้าคือ:

const arr1 = [23, 39, 57, 43, 61];
const arr2 = [61, 23, 43, 57, 39];

ผลลัพธ์ควรเป็น:

const output = [1, 4, 3, 2, 0];

เพราะสมาชิกดัชนี 0 ใน arr1 อยู่ที่ดัชนี 1 ใน arr2, สมาชิกดัชนี 1 อยู่ที่ดัชนี 4 ฯลฯ

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

const arr1 = [23, 39, 57, 43, 61];
const arr2 = [61, 23, 43, 57, 39];
const anagramMappings = (arr1 = [], arr2 = []) => {
  const res = [];
  for(let i = 0; i < arr1.length; i++) {
    for(let j = 0; j < arr2.length; j++) {
      if(arr1[i] == arr2[j]) {
        res.push(j);
      }
    }
  }
  return res;
};
console.log(anagramMappings(arr1, arr2));

ผลลัพธ์

[1, 4, 3, 2, 0]