我有一个数组:
['test', 'test2', {a: a, b: b}, 'test3']
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得第一个对象?
我需要循环并进行类型测试吗?还是有更有效的方法?
我需要循环并进行类型测试吗?
你做了,或者至少做了些什么.
例如,要查找数组中的第一个对象,可以使用find:
const first = theArray.find(e => typeof e === "object");
Run Code Online (Sandbox Code Playgroud)
或者如果你不想null匹配:
const first = theArray.find(e => e && typeof e === "object");
Run Code Online (Sandbox Code Playgroud)
还是有更有效的方法?
循环将足够有效.如果你不喜欢find回调的调用(它们真的非常非常快),你可以使用一个无聊的旧for循环:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
...但它实际上可以感知的性能差异的可能性非常小.