JavaScript 中的 Array.find() 链接

Mui*_*rik 2 javascript arrays

我正在养成根据上下文将我的一些内容转换for loops为使用的习惯array.find()。在这样做时,我想知道是否有一种方法可以在 之后链接另一个操作符,.find()以限制我从对象中获取的数量。

例如,请参阅以下内容:

currentStage = customerDoc.history.find(h => h.completed === false);
currentStageName = currentStage.name;
Run Code Online (Sandbox Code Playgroud)

由于我真正想要的只是“currentStage.name”的值,有没有一种方法可以通过在 my find(), 后面链接来指定我只想要这个属性来获得这个值?如果没有,是否有另一种方法可以在一行中完成此操作?

Cod*_*iac 5

是的,你可以这样,注意使用|| {}以避免异常,以防查找返回未定义

currentStage = (customerDoc.history.find(h => h.completed === false) || {}).name
Run Code Online (Sandbox Code Playgroud)

但在我看来,你应该像现在一样保留它,它可读且易于维护

currentStage = customerDoc.history.find(h => h.completed === false);
currentStageName = currentStage && currentStage.name;
Run Code Online (Sandbox Code Playgroud)