我经常发现 JavScript 快捷键很有用,例如替换 if/else 语句
if (a !== 0) {
b = c;
} else {
b = d;
}
与
b = a ? c : d;
或者像这样替换 for/next 循环
for (let i = 0; i < array.length; i++) {
element = array[i];
/* do something with element... */
}
与
array.forEach(element => { /* do something with element... */ });
我特别喜欢这些和其他类似的快捷方式可以在括号语句中组合和使用,例如
array.forEach(e => (x += e ? a : b, e * x));
(作品)
但是,我一直无法找到与括号内的“while”语句等效的快捷方式或功能。有这种事吗?
我试图在括号内使用普通的 while 语句,但出现错误
array.forEach(e => (while (e.length > 160) { e.replace(' ', ''); }, e));
(不起作用)
我知道上面可以用更长的形式重写,像这样
array.forEach(e => {
while (e.length > 160) {
e.replace(' ', '');
}
return e;
});
(作品)
但有时我真的更喜欢相当于 while 的内联速记,而不是长版本。有办法吗?
最佳答案
你可以使用递归:
const cutSpace = str => str.length > 160
? cutSpace(str.replace(' ', ''))
: str
const trimmedStrings = array.map(cutSpace)
关于javascript - 在 JavaScript 的括号语句中是否有一个 "while"等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942988/