查找javascript数组中包含的元素类型

查找javascript数组中包含的元素类型,javascript,arrays,Javascript,Arrays,我想了解一些函数(如果有的话)或库,它们可以提供直接函数来查找数组中的元素类型 假设我有一个包含相同数据类型元素的数组: var sameArray = [1, 2, 3, 4]; var diffArray = ['a', 'b', 'c', 4]; sameArray.itemPrototype(); // Returns int diffArray.itemPrototype(); // Returns undefined 对于第一个数组,它应该返回int,对于第二个数组,它应该返

我想了解一些函数(如果有的话)或库,它们可以提供直接函数来查找数组中的元素类型

假设我有一个包含相同数据类型元素的数组:

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

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

对于第一个数组,它应该返回
int
,对于第二个数组,它应该返回
undefined
false
,对于带有基元(如数字、字符串)的数组,您可以使用一种简单的方法:

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;
}
函数getItemsType(arr){ var-itemType,i; 对于(i=0;i
在这里,您将发现一个函数实现并集成到
数组中。prototype

什么是
itemPrototype
?…您编写的任何自定义函数?它只是一个伪名称。我还没有做任何实现。我更喜欢在一些现有库中使用内置函数。好的。对于第一种情况,预期输出应该是
int
,但由于第二种情况有多个类型,所以预期输出应该是
未定义的
,如您所述。对吗?如果是这种情况,您可以简单地编写一个自定义函数,可能在其中使用
typeof
。。