@McMike

Как написать проверку на существования свойства length в js?

Массив в какой-то момент может быть и не массив и в консоль сыпется ошибка
Cannot read property 'length'

Как написать проверку на это?
  • Вопрос задан
  • 445 просмотров
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
var t = Object.prototype.toString;
function isArray (s) { return t.call(s) === '[object Array]'; };
var x = [1,2,3];
if( isArray(x) && x.length > 0 ){ console.log('x is array and length is', x.length)} else { console.log('x isnt array') }
var x = {};
if( isArray(x) && x.length > 0 ){ console.log('x is array and length is', x.length)} else { console.log('x isnt array') }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
ogarich89
@ogarich89
Front-End Developer
function checkLength(arr) {
  if (arr.length && arr.isArray()) {

  }
}
Ответ написан
twobomb
@twobomb
Ну можно так
if(typeof(arr) == "object" && typeof(arr.length) == "number")
	alert("this array");
else
	alert("this not array");

Но есть исключение, если дать ему такой объект { length:123}, то он скажет что это массив,а так норм
Ответ написан
Комментировать
@superivankorolev
function CheckUndefined(elemet){
		try{			
			if(elemet['length']===undefined) return true;
			else return false;
		}catch(e){
			return true;
		}
	}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы