Как отличить массив объектов от массива строк? Как определить, что это за массив?
Это может быть так ['foo', 'bar', 'baz']
или
Это может быть как [ { foo: 'bar' }, { qux: 'quux' } ]
И я хотел бы обрабатывать их отдельно
Пожалуйста, используйте еще несколько слов, чтобы лучше объяснить вопрос. вероятно, пример подойдет
Просто добавил пример
В JS у вас может быть массив данных разных типов. Из-за этого вам придется тестировать каждый элемент в массиве. Что вы хотите сделать с этим массивом? Это определит, как будет выглядеть код.
Это может быть так ['foo', 'bar', 'baz']
или может быть так [ { foo: 'bar' }, { qux: 'quux' } ]
И я хотел бы обработать их отдельно
Ответ Ноа Джеррада является хорошей отправной точкой, проверьте первый элемент в массиве, используя typeof myArray[0]
Вы можете зациклить этот массив с помощью метода foreach или map и с помощью оператора typeof проверить тип каждого элемента в массиве.
Вы можете проверить, имеет ли первый элемент массива какие-либо свойства объекта.
list1 = [1,2,3,4,5];
var type = typeof(list1[0])
Простой
Самый быстрый способ узнать, какой тип содержимого в массиве, — это пройтись по массиву с помощью console.dir(). В console.dir смотрите все свойства. Вы можете добавить оператор typeof, чтобы найти тип переменной JavaScript в console.dir().
const list = ['foo', 'bar', 'baz'];
const list2 = [ { foo: 'bar' }, { qux: 'quux' } ];
list.forEach(item => console.dir(item)); // output: foo, bar, baz
list2.forEach(item => console.dir(item)); //output: Object, Object
Ресурс console.dir: https://developer.mozilla.org/en-US/docs/Web/API/Console/dir
Что-то вроде
typeof arrayOfSuspiciousEntities[0]
приходит на ум.