带有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
只是一个集合
。除非数组中有大量项,否则不太可能有明显的性能差异。