Неверное сравнение

124
11 апреля 2021, 07:30

Есть след код

    var date = new Date();
    var arr = [
             'Jan',
             'Feb',
             'Mar',
             'Apr',
             'May',
             'Jun',
             'Jul',
             'Aug',
             'Sep',
             'Oct',
             'Nov',
             'Dec'];
    var el = ["Jul 17 2019 09", 0.639, "1899"]
    var element = el[0];
      console.log(arr[date.getMonth()])
      console.log(element.slice(0, 4))
      console.log(typeof arr[date.getMonth()])
      console.log(typeof element.slice(0, 4))
      console.log(arr[date.getMonth()] === element.slice(0, 4))

Но при сравнении получаем false, хотя оба значения равны как по типу, так и по значению. В чем проблема? почему он не выдает true?

Answer 1

Проблема в том, что вы отрезаете 4 символа и туда попадает пробел после Jul. Надо отрезать либо 3 символа, либо делать trim

Answer 2

Там y el[0] в конце пробел

var date = new Date(); 
var arr = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct', 'Nov','Dec']; 
var el = ["Jul 17 2019 09", 0.639, "1899"] 
console.log(arr[date.getMonth()] == el[0].slice(0, 4).trim())

Answer 3

В JS непосредственно сравнивать можно только примитивы. Все остальное всегда даст false

READ ALSO
Ошибка в mapDispatchToProps

Ошибка в mapDispatchToProps

Получаю ошибку:

91
Управление jquery value аттрибутом в <option>

Управление jquery value аттрибутом в <option>

ЗдравcтвуйтеЕсть код: http://jsfiddle

128
Самовызывающиеся функции и момент их инициализации [дубликат]

Самовызывающиеся функции и момент их инициализации [дубликат]

Из-за чего в коде ниже на момент выполнения самовызывающейся функции переменная f не определена? Ведь самовызывающиеся ф-и вроде как не поднимаются...

122