如何在JavaScript中检查是对象列表还是字符串列表?

3
有人知道如何检查列表中是否包含对象或字符串吗?

2
循环遍历元素并使用typeof。 - dievardump
@dievardump,我已经尝试了循环并检查项目是否为“对象”或“字符串”。但是我想在不通过列表循环的情况下进行检查。 - NkS
针对对象:https://dev59.com/9nVC5IYBdhLWcg3w7Vxq - jrd1
@NkS 如果您确定该列表始终包含相同类型的元素,则可以直接 typeof 第一个元素来获取类型。否则,您将需要进行迭代。但是,您可以进行巧妙的迭代。一旦出现超过一个类型的元素,它就会停止(并返回类似于“mixed”的内容)。 - dievardump
2个回答

2

遍历数组并使用条件typeof variable === "string"typeof variable === "object"来查找。


1
避免使用 == 进行比较,而应该使用 ===。 - dievardump

1

Javascript中的所有数组都是无类型的,这意味着:如果您不自己处理,没有任何东西会关心其中包含的内容。

由于数组是由整数值引用的复合结构,您可以检查每个地址以获取存储在其中的确切类型。如果这是由其他人创建的数组,则无法确定数组类型。

其他选项:

  • 创建自己的结构,在其创建时指定类型,并在add(item)方法中如果项目类型违规就抛出错误
  • 创建自己的结构,在add(item)中处理类型并将其写入该结构的某个属性中

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接