在数组中找到对象?

时间:2018-11-20 14:58:09

标签: javascript

我有一个数组:

['test', 'test2', {a: a, b: b}, 'test3']

我怎么只能得到第一个物体?

我需要遍历并进行类型测试吗?还是有更有效的方法?

1 个答案:

答案 0 :(得分:8)

  

我需要遍历并进行类型测试吗?

您做了,或者至少做了 做。

例如,要查找数组中的第一个对象,可以使用find

const first = theArray.find(e => typeof e === "object");

或者如果您不希望null匹配:

const first = theArray.find(e => e && typeof e === "object");
  

还是有更有效的方法?

循环将足够有效。如果您不喜欢对find的回调的调用(它们真的非常非常快),则可以使用无聊的旧for循环: / p>

let first;
for (let i = 0, l = theArray.length; i < l; ++i) {
    const e = theArray[i];
    if (typeof e === "object") { // Or, again: `e && typeof e === "object"`
        first = e;
        break;
    }
}

...但是实际上您会感觉到的性能差异的可能性很小。