ในการเปรียบเทียบวัตถุหนึ่งกับวัตถุอื่นฉันรวม a for in loop (ใช้ในการวนซ้ำวัตถุ) และวัตถุบางอย่าง () คุณไม่ต้องกังวลเกี่ยวกับอาร์เรย์ที่ออกนอกขอบเขต ฯลฯ ดังนั้นจะบันทึกรหัสบางส่วน เอกสารเกี่ยวกับ. some สามารถพบได้ที่นี่
var productList = [{id: 'text3'}, {id: 'text2'}, {id: 'text4', product: 'Shampoo'}]; // Example of selected products
var theDatabaseList = [{id: 'text1'}, {id: 'text2'},{id: 'text3'},{id:'text4', product: 'shampoo'}];
var objectsFound = [];
for(let objectNumber in productList){
var currentId = productList[objectNumber].id;
if (theDatabaseList.some(obj => obj.id === currentId)) {
// Do what you need to do with the matching value here
objectsFound.push(currentId);
}
}
console.log(objectsFound);
อีกวิธีหนึ่งที่ฉันเปรียบเทียบวัตถุหนึ่งไปยังอีกวัตถุหนึ่งคือการใช้ซ้อนสำหรับลูปกับ Object.keys (). length เพื่อรับจำนวนของวัตถุในอาร์เรย์ รหัสด้านล่าง:
var productList = [{id: 'text3'}, {id: 'text2'}, {id: 'text4', product: 'Shampoo'}]; // Example of selected products
var theDatabaseList = [{id: 'text1'}, {id: 'text2'},{id: 'text3'},{id:'text4', product: 'shampoo'}];
var objectsFound = [];
for(var i = 0; i < Object.keys(productList).length; i++){
for(var j = 0; j < Object.keys(theDatabaseList).length; j++){
if(productList[i].id === theDatabaseList[j].id){
objectsFound.push(productList[i].id);
}
}
}
console.log(objectsFound);
เพื่อตอบคำถามที่ถูกต้องของคุณหากเพียงแค่ค้นหาค่าในวัตถุคุณสามารถใช้หนึ่งในการวนซ้ำ
var vendors = [
{
Name: 'Magenic',
ID: 'ABC'
},
{
Name: 'Microsoft',
ID: 'DEF'
}
];
for(var ojectNumbers in vendors){
if(vendors[ojectNumbers].Name === 'Magenic'){
console.log('object contains Magenic');
}
}