한 객체를 다른 객체와 비교하기 위해 for 루프 (객체를 반복하는 데 사용)와 some ()을 결합합니다. 배열이 범위를 벗어나는 것에 대해 걱정할 필요가 없으므로 일부 코드가 저장됩니다. .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와 함께 중첩 for 루프를 사용하여 배열의 객체 양을 얻는 것입니다. 아래 코드 :
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');
}
}