猿问

将字符串转换为二维数组

例如,每当 x 弹出时我都会得到一个字符串 (example = ".|x") 我必须将 true 推入我的数组,每当一个 '.' 弹出我必须将 false 推到我的数组中。我的问题在于,每当“|” 弹出我必须开始一行新的布尔值使其成为二维数组


function parse(str) {

    let result = [];

    let array = [];

    for (let char of str){

        if (char === "x") {

            result.push(true);

        } if (char === "."){

            result.push(false);

        } if (char === "|"){

            result.push(array);


        }

    }

    return [result];

}


this code just returns [[false, [], true]]


这是我应该得到的


[[假],[真]]


慕田峪4524236
浏览 282回答 3
3回答

繁花如伊

在每个管道上拆分字符串: |string.split('|')遍历结果数组,其中.map()方法的回调接受每个字符串并将其转换为字符数组。string.split('|').map(str => [...[...str] step 3 ])外括号和扩展运算符:[... [...str] step 3 ]会将返回的值从step 3转换为数组。内括号和扩展运算符:[...[...str] step 3 ]将字符串拆分为字符。step 2然后通过 using.flatMap()方法迭代每个字符数组,该方法是.map()和.flat()方法的组合。在回调中,返回值应作为单独的子数组返回——此外,如果您需要省略返回值,只需传递一个空数组即可。在此回调中,它将每个字符与 a 进行比较'x'并返回[true]或[false](注意:返回的数组是扁平的)。string.split('|').map(str => [...[...str].flatMap(chr => chr === 'x' ? [真] : [假]) ])// Raw data for a 6x8 tableconst data = `........|....xxxx|xxxxxxxx|x.x.x.x.|x..xx..x|.xx..xx.`;const bool2D = string => string.split('|').map(str => [...[...str].flatMap(chr => chr === 'x' ? [true] : [false])]);console.log(JSON.stringify(bool2D(data)));

扬帆大鱼

这段代码可以解决问题function parse(str) {    let result = [];    let array = [];    for (let char of str){        if (char === "x") {            array.push(true);        } if (char === "."){            array.push(false);        } if (char === "|"){            result.push(array);            array = []        }    }    result.push(array);    return result;}

慕森卡

function parse(str) {    let result = [];    let array = [];    for (let char of str){        if (char === "x") {            array.push(true);        } if (char === "."){            array.push(false);        } if (char === "|"){            result.push(array);            array = []        }    }    return result;}这将创建一个新行,以便您可以添加更多 bool 值,如果这是我从您的问题中理解的。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答