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

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


อาร์เรย์แอนนาแกรม:

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

ตัวอย่างเช่น −

[1, 2, 3] and [2, 1, 3] are anagrams of each other.

สมมติว่าเรามีสองอาร์เรย์ arr1 และ arr2 ซึ่งเป็นแอนนาแกรมของกันและกัน

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ทั้งสองนี้และส่งกลับอาร์เรย์การแมปใหม่ที่มีความยาวเท่ากับ 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 ใน arr1 อยู่ที่ดัชนี 4 ใน arr2 เป็นต้น

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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 ]