我有两个对象,汽车和卡车。每辆汽车和卡车都有一个号码属性。然而,每辆车可以有多辆卡车相关,但只有一辆卡车号码也会与车号相符。找到一个类似的属性,然后循环通过对象
例子:
car
{
number: 1054
}
truck
[{
number: 80,
type: "pickup",
},{
number: 1054,
type: "extended cab"
}, {
number: 50,
type: "flatbed"
}]
我想看看是否有跳过通过检查,看看他们是否有一些共同的属性,如果是这样,那么我想获得具有嵌套循环的方式附属于它的属性。
目前我使用比以下稍复杂的代码,但想法是用户正在使用一辆汽车时,他们正在寻找相关的卡车,所以下面的第一个循环是简化,但想法是相同的。
for (let i = 0; i < cars.length; i++) {
car1 = cars[0].number;
for (let j = 0; j < trucks.length; j++) {
if (car1 === trucks[j].number) {
console.log('Found matching truck');
}
}
}
我想知道是否有比这更少的征税方式,或者如果这是我应该坚持。
我打开使用普通的JavaScript或lodash。
你会说,创建HashMap和然后运行forEach更有效率(更少资源密集型)比Marcin提供的lodash代码? –
@Smithyyy先生,从长远来看,是的,因为用键查找对象比查找要快,而查找始终从卡车阵列的开始处开始迭代。 –
感谢您的性能解释并提供您的答案片段! –