我的密码有点麻烦。我有一个需要分隔和解析的单词列表,而不是列中的行。
这段代码实际上运行得很好,并完成了这项工作。究竟是如何运作的:
const Obj = {
"0":"Mario, Louigi, Peach",
"1":"Wario, King Kong, Bomberman",
"2":"Dracula, Doctor Z, Raikou"
};
const Obj3 = [];
var count = Obj[0].split(", ").length;
var countOuter = Object.keys(Obj).length;
for( var i = 0; i < count; i++){
var string = [];
for( var j = 0; j < countOuter; j++){
string.push(Obj[j].split(", ")[i]);
}
Obj3[i] = string;
}
console.log(Obj3);
但是,如果在中间的例子中有一个逗号: Mr,机器人,它认为逗号是分隔逗号,并将机器人先生分成两部分,而不是一个。
示例:
const Obj = {
"0":"Mr, Robot, Louigi, Peach",
"1":"Wario, King Kong, Bomberman",
"2":"Dracula, Doctor Z, Raikou"
};
const Obj3 = [];
var count = Obj[0].split(", ").length;
var countOuter = Object.keys(Obj).length;
for( var i = 0; i < count; i++){
var string = [];
for( var j = 0; j < countOuter; j++){
string.push(Obj[j].split(", ")[i]);
}
Obj3[i] = string;
}
console.log(Obj3);
然后,它创建了一个未定义的记录,导致了我的错误。知道怎么解决这个问题吗?提前谢谢!!
发布于 2018-08-22 16:02:46
如果在名称由逗号连接之前无法获得它们,则可以使用regex分隔符来分隔它们。例如,如果不使用逗号分隔两个非空格字符就足够了,则可以使用:
.split(/(?<=[^ ,]{3,}), /)
只有在', '
前面有至少3个不匹配' '
或','
的字符时,此正则表达式才能匹配它。
https://stackoverflow.com/questions/51976357
复制相似问题