【发布时间】:2018-08-22 23:11:21
【问题描述】:
我的代码有点问题。 我有一个需要分隔和解析的单词列表,而不是列中的行。
这段代码实际上工作得很好,并且完成了这项工作。 实际工作情况如何:
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, Robot,它会将逗号视为分隔符,并将 Mr, Robot 一分为二而不是一。
例子:
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);
然后它会创建一个未定义的记录,导致我出错。 知道如何解决这个问题吗? 提前致谢!!
【问题讨论】:
-
数组的第一个索引上有四个逗号分隔的字符串,数组的其余部分有三个逗号分隔的字符串。
-
你控制
Obj中的数据格式吗? -
@t0mm13b 是的,我知道这就是我寻求帮助的原因。即使数组的第一个索引上有 4 个逗号,其中一个也是“假”逗号。有任何想法吗?谢谢!
-
@JohanP 感谢您的回答,Obj 是 strings.map(item => (item.value)); 的结果
-
您必须转义您的项目,通常使用
""以便您可以确定单词边界。即"Mr, Robot", "Mario"然后寻找一些正则表达式,除了""
标签: javascript string split fuse