jefi
jefi

Reputation: 185

Compare items of an object array in JS (2nd)

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

Answers (1)

Kypps
Kypps

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

Related Questions