วิธีเปรียบเทียบอาร์เรย์ใน JavaScript – เปิดเผยความลึกลับ!

ภาพยนตร์เรื่องไหนที่จะดู?
 
  วิธีเปรียบเทียบอาร์เรย์ใน JavaScript – เปิดเผยความลึกลับ!

ใน JavaScript เพื่อเปรียบเทียบสองอาร์เรย์ เราจำเป็นต้องตรวจสอบว่าความยาวของอาร์เรย์ทั้งสองเท่ากัน วัตถุที่อยู่ในอาร์เรย์นั้นเป็นประเภทเดียวกัน และแต่ละรายการในอาร์เรย์หนึ่งจะเท่ากับอาร์เรย์ในอาร์เรย์ที่ต่างกัน





ในบทความนี้เราให้ความกระจ่างเกี่ยวกับ “ วิธีเปรียบเทียบอาร์เรย์ใน JavaScript

อาจจำเป็นต้องเปรียบเทียบอาร์เรย์เพื่อกำหนดความเท่าเทียมกัน อาร์เรย์ใน JavaScript แตกต่างจากอาร์เรย์ใน C หรือ C++



อาร์เรย์สามารถมีตัวเลขหรือดัชนีข้อความใน JavaScript การใช้ดัชนีลำดับเลข การข้ามผ่าน และการเปรียบเทียบอาร์เรย์นั้นทำได้ง่ายแต่ซับซ้อนในดัชนีข้อความ

เรามาดูวิธีการที่เป็นไปได้บางส่วนในการ เปรียบเทียบอาร์เรย์ ในสถานการณ์ต่างๆ:



ตารางเวลาโรงภาพยนตร์ Resorts World มะนิลา
  • อาร์เรย์มีดัชนีตัวเลขและมีความยาวเท่ากัน
  • อาร์เรย์มีดัชนีที่มีตัวเลขและมีความยาวไม่เท่ากัน
  • อาร์เรย์มีดัชนีข้อความและมีความยาวเท่ากัน
  • อาร์เรย์มีดัชนีข้อความและมีความยาวไม่เท่ากัน

อาร์เรย์มีดัชนีตัวเลขและมีความยาวเท่ากัน

ตัวอย่างเช่น เรามีสองอาร์เรย์ด้านล่าง และเราต้องการเปรียบเทียบอาร์เรย์เหล่านี้



var Array1 = {"1", "2", "3"}

var Array2 = {"1", "2", "4"}

อาร์เรย์ด้านบนมีองค์ประกอบจำนวนน้อย ซึ่งก็คือสาม (3) การพิจารณาความเท่าเทียมกันสำหรับอาร์เรย์ขนาดเล็กนั้นง่ายกว่า

แต่สำหรับอาร์เรย์ที่ยาวขึ้น เราต้องหาวิธีการบางอย่างเพื่อค้นหามัน JavaScript มาพร้อมกับความยาวในตัว เมธอดที่สามารถใช้กับอาร์เรย์และอ็อบเจ็กต์เพื่อค้นหาความยาวได้

ความยาวนี้สามารถเปรียบเทียบได้โดยใช้โครงสร้างแบบมีเงื่อนไขอย่างพึงประสงค์ an ถ้า คำแถลง. นี่จะเป็นดังนี้:

if(Array1.length == Array2.length){

    // do something;

}

การเปรียบเทียบความยาวเป็นสิ่งที่จำเป็น เนื่องจากเรากำลังจัดการกับกรณีของอาร์เรย์ที่มีขนาดเท่ากัน หากความยาวของอาร์เรย์เท่ากัน สามารถตรวจสอบองค์ประกอบข้ามของอาร์เรย์ได้อย่างง่ายดายโดยใช้ลูปโดยเฉพาะอย่างยิ่ง for ห่วง

นี่จะเป็นดังนี้:

for....

{

    document.write("Array 1 element " + Array1[i] + "is equal to
"+ "Array 2 element " + Array2[i]);

}

นี่จะแสดงผลข้อความบางส่วนที่เปรียบเทียบองค์ประกอบไขว้ สามารถแก้ไขได้เพื่อให้แสดงข้อความเช่น 'อาร์เรย์เท่ากัน' เพื่อให้ง่าย

อาจมี อื่น ส่วนที่สามารถรองรับกรณีของอาร์เรย์ที่ไม่เท่ากัน

อาร์เรย์มีดัชนีที่มีตัวเลขและมีความยาวไม่เท่ากัน

ดังที่เราได้กล่าวไปแล้วในส่วนอื่นของสถานการณ์ก่อนหน้า Arrays อาจมีความยาวไม่เท่ากัน ในกรณีเช่นนี้ Array 1 อาจเท่ากับ Array 2 หรือ Array 2 อาจไม่ใช่

ตัวอย่างเช่น Array 1 มีองค์ประกอบสามอย่างที่เราใช้ก่อนหน้านี้ แต่ Array 2 มีองค์ประกอบ 4 องค์ประกอบ Array 2 มีองค์ประกอบทั้งหมดของ Array 1 แต่นั่นไม่เป็นความจริงสำหรับ Array 1

สำหรับกรณีดังกล่าว เราอาจเปรียบเทียบแต่ละองค์ประกอบของอาร์เรย์กับแต่ละองค์ประกอบของอาร์เรย์อื่นและอีกทางหนึ่ง

แต่ในกรณีนี้ อาร์เรย์เดียวเท่านั้นที่สามารถเท่ากับอาร์เรย์อื่นได้หรือไม่ แต่ทั้งสองจะเท่ากันไม่ได้เนื่องจากมีความยาวต่างกัน สำหรับการเปรียบเทียบอาร์เรย์ในลักษณะนี้ เราสามารถใช้ nested for loop ซึ่งอาจมีลักษณะดังนี้:

for...

    for...

{

    {

    	if(Array[i] == Array[j])

    	{
   		 //do something

   		         }

    }

}

เราต้องใช้ if คำสั่งภายในลูปที่ซ้อนกันในขณะที่เรากำลังจัดการกับอาร์เรย์ที่มีขนาดแตกต่างกัน

อาร์เรย์มีดัชนีข้อความและมีความยาวเท่ากัน

อาร์เรย์ที่จัดทำดัชนีข้อความไม่ใช่แนวปฏิบัติที่ดี มันยังทำให้งานเปรียบเทียบระหว่างอาร์เรย์ที่มีความยาวและความยาวไม่เท่ากันมีความซับซ้อนยิ่งขึ้น นอกจากนี้ยังครอบคลุมถึง 'อาร์เรย์มีดัชนีข้อความและไม่เท่ากัน'

ความยาวเท่ากัน แต่ละค่าเท่ากัน

วิธีหนึ่งในการเปรียบเทียบ var1 และ var2 คือตรวจสอบว่าแต่ละค่าของ var1 เท่ากับค่าที่สอดคล้องกันของ var2 อย่างเคร่งครัดหรือไม่

วิธีนี้ใช้ได้ผลดีหากองค์ประกอบทั้งหมดของอาร์เรย์เป็นแบบพื้นฐานเมื่อเทียบกับอ็อบเจ็กต์ สิ้นสุดการดำเนินการจะส่งกลับค่าบูลีน นี่คือตัวอย่าง:

const var1 = [1, 2, 3];

const var2 = [4, 5, 6];

const var3 = [1, 2, 3];


function arrayEquals(var1, var2) {

  return Array.isArray(var1) && Array.isArray(var2) &&
var1.length === var2.length && var1.every((val, index) => val
=== var2[index]);

}


arrayEquals(var1, var2);

arrayEquals(var1, var3);

ผลลัพธ์ควรมีลักษณะดังนี้:
ผิดถูก

ใช้ JSON.stringify() วิธีการ

JavaScript มีฟังก์ชัน JSON .stringify() เพื่อแปลงวัตถุหรืออาร์เรย์เป็นสตริง JSON โดยการแปลงเป็นสตริง JSON เราสามารถตรวจสอบได้โดยตรงว่าสตริงนั้นเท่ากันหรือไม่

อย่างไรก็ตาม JSON .stringify() วิธีการแปลงอาร์เรย์เป็นสตริง JSON ดูที่โปรแกรมด้านล่างเพื่อทำความเข้าใจแนวคิดให้ดี

อธิษฐานต่อพระเจ้าที่ไม่ถูกต้อง
function compareArrays(arr1, arr2){

    // compare arrays

    const result = JSON.stringify(arr1) == JSON.stringify(arr2)

    
// if result is true

    if(result){

   	 console.log('The arrays have the same elements.');

    }

    else{

   	 console.log('The arrays have different elements.');

    }

}

const array1 = [1, 3, 5, 8];

const array2 = [1, 3, 5, 8];

compareArrays(array1, array2);

โปรแกรมด้านบนจะเปรียบเทียบอาร์เรย์ที่กำหนดและสร้างเอาต์พุต อาร์เรย์มีองค์ประกอบเหมือนกัน b เพราะเราใส่ค่าเดียวกันในอาร์เรย์ทั้งสอง

ในบล็อกโพสต์นี้ เรา ได้เรียนรู้ “วิธีเปรียบเทียบอาร์เรย์ใน JavaScript” และพิจารณาวิธีการที่มีอยู่ซึ่งรวมถึงโค้ดตัวอย่างที่ตรงไปตรงมา