我有一件物品有一些属性:
const carOptions = { mazda: 25000, tesla: 85000, bmw: 100000 }
for 环
for
for (let i = 0; i < cars.length; i++) { if (cars[i].checked) { return carOptions[cars[i].id] } } â¦
至 .forEach 但是这个代码不起作用:
.forEach
cars.forEach(function(cars)) { if (cars.checked) { return carOptions[cars.id] } } â¦
问题是您是从回调函数返回,而不是从包含函数返回。
您应该在 forEach()
forEach()
var checkedOption; cars.forEach(car => { if (car.checked) { checkedOption = carOptions[car.id]; } }); return checkedOption;
请注意,这并不像 for 循环。一旦找到匹配项,循环将停止并从函数返回。但是没有办法停止 在中间,它将继续测试剩余的汽车。如果有多辆检查过的车, checkedOption 将设置为与最后一个选项相对应的选项,而不是第一个选项。
checkedOption
.find() :
.find()
var checkedCar = cars.find(car => car.checked); if (checkedCar) { return carOptions[checkedCar.id]; }