3 回答
TA贡献2012条经验 获得超12个赞
在每个管道上拆分字符串:
|
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 table
const 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)));
TA贡献1799条经验 获得超9个赞
这段代码可以解决问题
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;
}
TA贡献1806条经验 获得超8个赞
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 值,如果这是我从您的问题中理解的。
添加回答
举报