Проверьте, безопасно ли выполнить итерации по переменной JavaScript

У меня есть функция JavaScript, куда кто-то может передать что-либо в, и я выполняю итерации по каждому из его ключей с помощью

for x in obj

синтаксис. Однако это приводит к ошибке, если они передают примитив (строка или число); корректное поведение состоит в том, чтобы функция действовала одинаково на тех, как это было бы на объекте без ключей.

Я могу сделать a try..catch блок для двигений это, но является там другим (более сжатый) путь?

7
задан Trevor Burnham 22 June 2010 в 22:26
поделиться

2 ответа

x && typeof(x) === 'object'

Это верно для объектов и массивов (хотя обычно вы не хотите перебирать массивы с помощью for..in).

РЕДАКТИРОВАТЬ: Исправление для CMS.

7
ответ дан 7 December 2019 в 03:11
поделиться

Есть несколько способов сделать это вывод, вот хороший:

function isIterable(obj) {
  if (obj && obj.hasOwnProperty) {
    return true;
  }
  return false;
}

Вы можете выбрать несколько из них.

2
ответ дан 7 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

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