Search code examples
javascriptjavascript-objects

the logic here doesn't make sense in javascript


cellColor = {};
cellColor['cel32'] = 'blue';
cellColor['cel24'] = 'blue';
cellColor['cel16'] = 'blue';
cellColor['cel8'] = 'blue';

console.log(
  (((cellColor['cel32'] === cellColor['cel24']) === cellColor['cel16']) ==
    cellColor['cel8']) ==
  'blue',
);

//the output is false here why?


Solution

  • You are comparing boolean with blue so that will return false

    you are comparing true with blue which will return false.

    cellColor = {};
    cellColor['cel32'] = 'blue';
    cellColor['cel24'] = 'blue';
    cellColor['cel16'] = 'blue';
    cellColor['cel8'] = 'blue';
    
    const a = cellColor['cel32'] === cellColor['cel24'];
    console.log(a); // true
    
    const b = cellColor['cel16'];
    // Here a is true and b is blue
    const c = a === b;
    console.log(c); // true is not equal to 'blue' so return false
    
    // Here c is false and cellColor['cel8'] is blue
    const d = c === cellColor['cel8'];
    console.log(d); // false is not equal to 'blue' so return false
    
    const e = d === 'blue';
    console.log(e);// false is not equal to 'blue' so return false
    

    cellColor = {};
    cellColor['cel32'] = 'blue';
    cellColor['cel24'] = 'blue';
    cellColor['cel16'] = 'blue';
    cellColor['cel8'] = 'blue';
    
    const a = cellColor['cel32'] === cellColor['cel24'];
    console.log(a); // true
    
    const b = cellColor['cel16'];
    const c = a === b;
    console.log(c); // true is not equal to 'blue' so return false
    
    const d = c === cellColor['cel8'];
    console.log(d); // false is not equal to 'blue' so return false
    
    const e = d === 'blue';
    console.log(e);// false is not equal to 'blue' so return false