如何在JavaScript中进行内联for循环,未连接到变量

问题描述 投票:2回答:3

众所周知,JavaScript通常允许以下格式的内联循环:

someArray.forEach(x => x.doSomething());

但是,当您要使用常规的for循环内联时,作为一条语句,会发生错误。例如:

void(for(var i = 0; i < 0; i++) console.log(i));

即使从技术上讲这只是一行,但是由于它以字面内联的形式使用,并且被认为是一条语句,因此会出现错误:

未捕获的SyntaxError:意外的令牌'为'

为什么要这样做?简单:为了在一行中生成一个数组或字符串,例如:

var newString = (let k = "", for(let i = 0; i < 1000; i++) k+= i, k);

但是这很明显

未捕获的SyntaxError:意外的标识符

由于关键字“ let”而出现错误,但是that's a different question

主要是,可以在JavaScript中进行常规的for循环内联吗?

javascript arrays string for-loop inline
3个回答
1
投票

这里是单行IIFE(立即调用函数表达式):

(() => {let newString = ''; for (let i = 0; i < 1000; i++) {newString+= i;} console.log(newString);})();

对IIFE的进一步阅读:


1
投票

for是一个语句,不是表达式,不能在变量赋值的右侧使用它。您也不必使用void。只需简单地使用循环

for(var i = 0; i < 4; i++) console.log(i)

0
投票

您为什么在一行中特别需要for循环?它看起来不太可读。为什么不只是在函数中扭曲for循环?

function functionName(number) {
    let temp = 0;
    let i = 0;

    for (i; i < number; i++) {
        temp += i;
    }

    return temp;
}

const value = functionName(5);

console.log(value);
© www.soinside.com 2019 - 2024. All rights reserved.