gpt4 book ai didi

javascript - 即使短语肯定存在于数组中,RegEx 搜索也会返回 -1

转载 作者:行者123 更新时间:2023-12-04 10:44:11 25 4
gpt4 key购买 nike

我正在使用 xlsx 导入一个 excel 文件在 angular 中,excel 文件作为数组对象导入,每个数组是 excel 文件的一行,每个数组中的每个项目都是其各自行中的一个单元格。请参阅下文了解这是如何完成的

onFileChange(event: any) 
{
const inputFile: DataTransfer = <DataTransfer>(event.target);
const fileReader: FileReader = new FileReader();
fileReader.onload = (event: any) =>
{
const binaryString: string = event.target.result;
const workBook: XLSX.WorkBook = XLSX.read(binaryString, { type: 'binary', sheetStubs: true});
/* sheetstubs true supposedly shows empty cells but isn't */

const workSheetName: string = workBook.SheetNames[0];
const workSheet: XLSX.WorkSheet = workBook.Sheets[workSheetName];

this.data = <Array>(XLSX.utils.sheet_to_json(workSheet,
{header: 1, blankrows: true }));


};

我现在试图通过使用正则表达式搜索来查找包含制造商描述的列,方法是遍历每个数组并搜索术语 cap像这样:

getManufacturerDescriptionColumn()
{
console.log(this.data)
for (const row in this.data)
{

var manDescriptIndex = row.search(/cap/i)
console.log(manDescriptIndex)
if (manDescriptIndex > -1)
{
return manDescriptIndex
}
}
}

但是,当我尝试此操作时,即使我运行此操作时某些数组中明显存在短语 cap ,我也会看到所有 -1表示在任何数组中都找不到该短语的值。下面是一个附加的示例,其中 CAP 明显存在于 excel 文件的 15 行中的几行中,但我仍然遇到 15 -1 值。

Example Manufacturer Description Column

例如,索引为的数组
任何想法为什么当我做 console.log(this.data) 时,正则表达式搜索不能识别这种情况下的短语我可以看到这样的短语 cap,

Array #13 in object of arrays

我还尝试添加另一层迭代来隔离行中单个单元格的字符串也无济于事。

最佳答案

正如您可以在这里清楚地阅读 MDN您正在使用循环 for..in这是一个错误,你应该使用 for..of反而。下面解释
for..in用于迭代对象,这实际上适用于数组,但只是为您提供索引,在这种情况下将是 0,1,2 等等......

如果你想获得这些值,你必须使用 for..of循环 MDN

如果您打印 console.log(row),您会更清楚地看到这一点。检查前

关于javascript - 即使短语肯定存在于数组中,RegEx 搜索也会返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59791996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com