我有一个数组:
['test', 'test2', {a: a, b: b}, 'test3']
我怎么只能得到第一个物体?
我需要遍历并进行类型测试吗?还是有更有效的方法?
答案 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;
}
}
...但是实际上您会感觉到的性能差异的可能性很小。