У меня есть функция JavaScript, куда кто-то может передать что-либо в, и я выполняю итерации по каждому из его ключей с помощью
for x in obj
синтаксис. Однако это приводит к ошибке, если они передают примитив (строка или число); корректное поведение состоит в том, чтобы функция действовала одинаково на тех, как это было бы на объекте без ключей.
Я могу сделать a try..catch
блок для двигений это, но является там другим (более сжатый) путь?
x && typeof(x) === 'object'
Это верно для объектов и массивов (хотя обычно вы не хотите перебирать массивы с помощью for..in).
РЕДАКТИРОВАТЬ: Исправление для CMS.
Есть несколько способов сделать это вывод, вот хороший:
function isIterable(obj) {
if (obj && obj.hasOwnProperty) {
return true;
}
return false;
}
Вы можете выбрать несколько из них.