Есть след код
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?
Проблема в том, что вы отрезаете 4 символа и туда попадает пробел после Jul
. Надо отрезать либо 3 символа, либо делать trim
Там 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())
В JS непосредственно сравнивать можно только примитивы. Все остальное всегда даст false
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Из-за чего в коде ниже на момент выполнения самовызывающейся функции переменная f не определена? Ведь самовызывающиеся ф-и вроде как не поднимаются...