Задать вопрос
logicface
@logicface
Начинающий

Почему не отсеиваются нули при сравнении 0 < 0?

Делал задачку на codewars. Надо было объединить два массива, упорядочить их и отсеять повторяющиеся элементы. Я сделал так:

function mergeArrays(arr1, arr2) {
	let result = []
	return result
		.concat(arr1, arr2)
		.sort((a, b) => a - b)
		.filter((item, index, array) => {
			return array[index + 1] ? item < array[index + 1] : true
			// Если предыдущий элемент меньше последующего - оставляем его
		})
}

let arr1 = [5, 4, 3, 2, 1]
let arr2 = [-5, -4, -3, -2, 5, 4, 3, 2, 1, 0, 0]

console.log(mergeArrays(arr1, arr2)) // [-5, -4, -3, -2, 0, 0, 1, 2, 3, 4, 5]
console.log(5 < 5) // false
console.log(0 < 0) // false

Но у меня из-за чего-то не отсеиваются нули, хотя 0 < 0 дает false и должен работать аналогично сравнению всех других чисел. В чем тут проблема?
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
array[index + 1] ? item < array[index + 1] : true Что эта конструкция делает, можете объяснить? Ошибка в ней.
Ответ написан
@Wexter
А что по вашему должен вернуть этот код?
0 ? .. : true
Спойлер
он всегда вернёт true
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Автор ты конечно читер еще тот. Codewars - это для самостоятельной работы.

И после того как ты ее заканчиваешь - там открывается форум где можно обсуждать и сравнивать
наилучшие решения.

Вобщем зря ты сюда пришел.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы