Để so sánh một đối tượng với đối tượng khác, tôi kết hợp một vòng lặp for (được sử dụng để lặp qua các đối tượng) và một số (). Bạn không phải lo lắng về việc một mảng vượt ra ngoài giới hạn, vì vậy sẽ tiết kiệm được một số mã. Tài liệu về .some có thể được tìm thấy ở đây
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);
Một cách khác tôi so sánh một đối tượng này với một đối tượng khác là sử dụng vòng lặp lồng nhau với chiều dài Object.keys (). Để lấy số lượng đối tượng trong mảng. Mã dưới đây:
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);
Để trả lời chính xác câu hỏi của bạn, nếu chỉ tìm kiếm một giá trị trong một đối tượng, bạn có thể sử dụng một vòng lặp for.
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');
}
}