อาร์เรย์สามารถเปรียบเทียบได้ 2 วิธี -
-
พวกเขาอ้างถึงวัตถุอาร์เรย์เดียวกันในหน่วยความจำ
-
พวกเขาอาจอ้างถึงวัตถุที่แตกต่างกัน แต่เนื้อหาทั้งหมดเท่ากัน
สำหรับกรณีที่ 1 ดอกมะลิมีวิธีการ toBe ใช้สำหรับตรวจสอบข้อมูลอ้างอิง ตัวอย่างเช่น
ตัวอย่าง
describe("Array Equality", () => { it("should check for array reference equility", () => { let arr = [1, 2, 3]; let arr2 = arr // Runs successfully expect(arr).toBe(arr2); // Fails as references are not equal expect(arr).toBe([1, 2, 3]); }); });
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
Array Equality should check for array equility Message: Expected [ 1, 2, 3 ] to be [ 1, 2, 3 ]. Tip: To check for deep equality, use .toEqual() instead of .toBe().
สำหรับกรณีที่ 2 เราสามารถใช้วิธี toEqual และเปรียบเทียบอาร์เรย์อย่างละเอียด ตัวอย่าง
ตัวอย่าง
describe("Array Equality", () => { it("should check for array reference equility", () => { let arr = [1, 2, 3]; let arr2 = arr; // Runs successfully expect(arr).toEqual(arr2); // Runs successfully expect(arr).toEqual([1, 2, 3]); }); });
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
1 spec, 0 failures