Bir nesneyi diğeriyle karşılaştırmak için, bir for in döngüsü (nesneler arasında döngü yapmak için kullanılır) ve some () birleştiririm. Bazı kodları kaydederek sınırların dışına çıkma gibi bir dizi hakkında endişelenmenize gerek yoktur. .Some ile ilgili dokümanları burada bulabilirsiniz
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);
Bir nesneyi diğeriyle karşılaştırmanın alternatif bir yolu, dizideki nesnelerin miktarını elde etmek için iç içe bir döngü Object.keys (). Uzunluğu ile kullanmaktır. Aşağıdaki kod:
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);
Sorunuzu tam olarak cevaplamak için, yalnızca bir nesnede bir değer arıyorsanız, döngü içinde bir tane kullanabilirsiniz.
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');
}
}