我正在尝试下面的代码,但它并不像预期的那样工作。我想检查单元格值是否有印度、UnitedStatedofAmerica、德国或瑞士,然后进入内部,它是undefined、null还是空白,或者它不包含文本位置,然后转到else,将值设置为ROW,但它不能工作。
因此,每次它给我结果行,即使单元格有印度或UnitedStatedofAmerica,当它为空时,它进入真正的条件,并抛出cell.Value为空的拆分错误。
3例cell.Value
Lorem Ipsum是印刷和排版的虚拟文本;Location,孟买;Lorem Ipsum只是印刷的虚拟文本,typesettingLorem Ipsum只是印刷和排版的虚拟文本
"Location ;Lorem Ipsum只是印刷的虚拟文本,typesettingLorem Ipsum只是印刷和排版的虚拟文本;Lorem Ipsum是印刷的虚拟文本,typesettingLorem Ipsum只是印刷和排版的虚拟文本“
Lorem Ipsum是印刷的虚拟文本,typesettingLorem Ipsum只是印刷和排版的虚拟文本;Lorem Ipsum是印刷的虚拟文本,typesettingLorem Ipsum是;Location of America;简单的是打印和排版的虚拟文本。
if (cell.Value.split('Location')[1].split(',')[0].replace(/\s/g, "") === "India" || cell.Value.split('Location')[1].split(',')[0].replace(/\s/g, "") === "Germany" || cell.Value.split('Location')[1].split(',')[0].replace(/\s/g, "") === "UnitedStatesofAmerica" || cell.Value.split('Location')[1].split(',')[0].replace(/\s/g, "") === "Switzerland" || cell.Value !== 'undefined' || cell.Value !== null || cell.Value !== "" || cell.Value.toLowerCase().indexOf("Location") !== -1) {
persona.country = cell.Value.split('Location')[1].split(',')[0].replace(/\s/g, "");
} else {
persona.country = "ROW"
}
发布于 2022-04-30 17:59:59
你可以用一些变量和一系列通缉犯来简化一些部分。
const
value = cell.Value || '',
country = value.split('Location')?.[1]?.split(',')[0].replace(/\s/g, ""),
countries = ["India", "Germany", "UnitedStatesofAmerica", "Switzerland"];
persona.country = countries.includes(country)
? country
: "ROW";发布于 2022-04-30 18:00:11
如果cell.Value是null或undefined,那么调用.split将引发错误。您只需在toif语句的开头添加对if的错误检查即可。
if(cell.Value && cell.Value.split...https://stackoverflow.com/questions/72070721
复制相似问题