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

วิธีเปรียบเทียบสองอาร์เรย์เมื่อคีย์เป็นสตริง - JavaScript


สมมติว่าต่อไปนี้คืออาร์เรย์แรกของเรา -

const firstArray = [
   { "name": "John Doe" },
   { "name": "John Smith" },
   { "name": "David Miller" },
   { "name": "Bob Taylor" },
   { "name": "Carol taylor" },
   { "name": "Adam Smith" },
];

สมมติว่าต่อไปนี้คืออาร์เรย์ที่สองของเรา –

const secondArray = [
   { "name": "Adam Smith" },
   { "name": "John Doe" },
   { "name": "David Miller" },
   { "name": "James Taylor" }
];

หากต้องการเปรียบเทียบ ให้ใช้ map() และ include()

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const firstArray = [
   { "name": "John Doe" },
   { "name": "John Smith" },
   { "name": "David Miller" },
   { "name": "Bob Taylor" },
   { "name": "Carol taylor" },
   { "name": "Adam Smith" },
];
const secondArray = [
   { "name": "Adam Smith" },
   { "name": "John Doe" },
   { "name": "David Miller" },
   { "name": "James Taylor" }
];
const getAllValue = ({ 'name': name }) => name;
const result = firstArray
   .map(getAllValue)
   .filter(value => secondArray
      .map(getAllValue)
      .includes(value)
   );
console.log(result);

ในการรันโปรแกรมข้างต้น คุณต้องใช้คำสั่งต่อไปนี้ -

node fileName.js.

ที่นี่ ชื่อไฟล์ของฉันคือ demo251.js

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้บนคอนโซล -

PS C:\Users\Amit\javascript-code> node demo251.js
[ 'John Doe', 'David Miller', 'Adam Smith' ]