Reputation: 185
I tried to solve this problem (Compare items of an object array in JS) and do not understand why this doesn't work:
var same = [
{floor: '1', id: '10165', label: 'Elutuba/Köök'},
{floor: '1', id: '10166', label: 'Tuba 1'},
{floor: '1', id: '10167', label: 'Vannituba'},
{floor: '1', id: '10167', label: 'Vannituba'}
];
var notSame = [
{floor: '1', id: '10165', label: 'Elutuba/Köök'},
{floor: '1', id: '10166', label: 'Tuba 1'},
{floor: '1', id: '10167', label: 'Vannituba'},
{floor: '2', id: '10167', label: 'Vannituba'}
];
function allSameFloor(a){
const firstFloor = a[0].floor
return a.every((item)=>{
item.floor === firstFloor
})
}
console.log(allSameFloor(notSame)) // false as expected
console.log(allSameFloor(same)) // <-- false ??? expected true
Upvotes: 1
Views: 49
Reputation: 346
Missing a return in the function's return.
var same = [
{floor: '1', id: '10165', label: 'Elutuba/Köök'},
{floor: '1', id: '10166', label: 'Tuba 1'},
{floor: '1', id: '10167', label: 'Vannituba'},
{floor: '1', id: '10167', label: 'Vannituba'}
];
var notSame = [
{floor: '1', id: '10165', label: 'Elutuba/Köök'},
{floor: '1', id: '10166', label: 'Tuba 1'},
{floor: '1', id: '10167', label: 'Vannituba'},
{floor: '2', id: '10167', label: 'Vannituba'}
];
function allSameFloor(a){
const firstFloor = a[0].floor
return a.every((item)=>{
return item.floor === firstFloor
})
}
console.log(allSameFloor(notSame)) // false as expected
console.log(allSameFloor(same)) // <-- false ??? expected true
Upvotes: 1