2015-04-06 3 views
2

Я хочу знать о некоторой функции (если она есть) или библиотеке, которая может предоставлять прямые функции для поиска типа элементов в массиве.Найти тип элементов, содержащихся в массиве javascript

Предположим, что у меня есть массив, содержащий элементы одного типа данных:

var sameArray = [1, 2, 3, 4]; 
var diffArray = ['a', 'b', 'c', 4]; 

sameArray.itemPrototype(); // Returns int 
diffArray.itemPrototype(); // Returns undefined 

Для первого массива, он должен вернуть int и для второго undefined или false.

+1

Что такое 'itemPrototype'? ... Любая пользовательская функция, которую вы написали? –

+1

Его просто фиктивное имя. Я еще не реализовал реализацию. И я предпочту использовать встроенную функцию в некоторой существующей библиотеке. –

+0

Хорошо. Для первого ожидается, что ожидаемый вывод должен быть 'int', но поскольку второй случай имеет несколько типов, поэтому ожидаемый результат должен быть' undefined', как вы упомянули. Правильно? Если это так, вы можете просто написать пользовательскую функцию, возможно, используя 'typeof' внутри нее. –

ответ

2

Для массивов с примитивов (например, числа, строки), вы можете использовать простой метод:

function getItemsType(arr) { 
    var itemType, i; 

    for (i=0; i < arr.length; i++) { 
    if (typeof itemType === 'undefined') { 
     itemType = typeof arr[i]; 
    } else if (itemType !== typeof arr[i]) { 
     return undefined; 
    } 
    } 

    return itemType; 
} 

В этом jsbin вы найдете реализацию функции и интеграции в Array.prototype.

Смежные вопросы