gpt4 book ai didi

Javascript - 如何在表达式中放置一个语句?

转载 作者:行者123 更新时间:2023-11-30 09:24:31 26 4
gpt4 key购买 nike

我正在学习 javascript,但遇到了一个我偶然发现的问题。我有以下 javascript 代码(我在 MyArray 中搜索名称 john,其中包含类对象):

MyArray.forEach(
(v,i)=>(
v.name == 'john' && return i
)
);

这不起作用,因为我在第 3 行收到以下错误:

SyntaxError: expected expression, got keyword 'return'

我的问题是,如何将语句放在表达式中?

最佳答案

How can i put statement inside an expression?

目前还不能。在那个例子中,你也不想。 forEach 回调的返回值不用于任何用途。

请参阅下面针对您的具体情况的水平规则,但要回答您实际提出的问题:

有时,确实会想做一些语句逻辑,然后用一个整体表达式作为该语句逻辑的最终结果。因此,有一个提案 do expressions通过 JavaScript 提案流程工作。它仅处于流程的第 1 阶段,因此可能不会取得进展,或者如果取得进展,其形式可能会发生变化,但目前看起来是这样的:

let x = do {           // Using the `do` expression proposal
let tmp = f(); // (currently just Stage 1, do not use!)
tmp * tmp + 1
};

...其中 x 将获得 {} 中最后一个表达式的结果。

如果你现在真的想这样做,你可能会使用立即调用的箭头函数:

let x = (() => {
let tmp = f();
return tmp * tmp + 1;
})();

do 表达式提议的目的是在您需要做的时候减少冗长。

(请不要将此误认为是我对 do 表达式提出了任何意见。我只是注意到该提案存在并且正在完成整个过程。)


您查找项目索引的具体情况:

在您的特定情况下,您正在寻找 Array#findIndex 函数,它返回回调返回真值的条目的索引:

const index = MyArray.findIndex(v => v.name == 'john');

(或者如果您想要条目本身而不是它的索引,您可能需要 Array#find。)

请注意,由于它使用了一个简洁的箭头函数,函数的返回值是构成函数体的表达式的值。我们可以使用一个详细的,而不是一个显式的 return:

const index = MyArray.findIndex(v => { return v.name == 'john'; });

关于Javascript - 如何在表达式中放置一个语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49692718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com