带有indexOf的字符串的JavaScript数组或带有字符串作为字段名的对象

带有indexOf的字符串的JavaScript数组或带有字符串作为字段名的对象,javascript,Javascript,我有一个字符串数组: const arr = ["foo", "bar"]; 使用indexOf检查内容是否更好: if (arr.indexOf("foo") > 0) 或者我应该将其转换为以字符串作为字段名的对象: const arrObj = _.keyBy(arr); /* resulting arrObj = { foo: "foo", bar: "bar" }; *

我有一个字符串数组:

const arr = ["foo", "bar"];

使用
indexOf
检查内容是否更好:

if (arr.indexOf("foo") > 0)
或者我应该将其转换为以字符串作为字段名的对象:

const arrObj = _.keyBy(arr);
/* resulting arrObj = {
  foo: "foo",
  bar: "bar"
}; */
if(arrObj.foo)
我只获取一次数组,所以我只转换一次对象,但我重复检查字符串


我认为
索引是
O(n)
,字段访问是
O(1)

你可以取一个
Set
。我不知道javascript有一个
Set
。一个对象基本上是一个
HashMap
,布尔值的
HashMap
只是一个
集合
。除非数组中有大量项,否则不太可能有明显的性能差异。