验证单元格是否存在于单元格数组中



我正在尝试迭代电子表格列,同时跳过重复的值。为此,我使用TextFinder获取具有相同值的所有单元格,并将它们添加到"duplicate"中。数组。

在每次迭代中,if子句都会验证当前单元格是否是"重复单元格"的一部分。数组,如果是,它应该直接跳到下一个迭代。然而,事实并非如此;它通过我的if子句执行。我试了两个"includes()"one_answers"indexOf (), .

下面是我的代码:

let duplicates = [];
for (let row = 1; row <= range.getNumRows(); row++) {
const cell = range.getCell(row, 1);
const value = cell.getValue();
if (duplicates.includes(cell) == false) {
let array = range.createTextFinder(value).findAll();
const cellIndex = array.indexOf(cell);
array.splice(cellIndex, 1);
duplicates.push(...array);
}
}

我真的不知道为什么它不起作用。然而,我是一个新手,这可能是一个初学者的错误。

任何帮助都是感激的!谢谢!

如果您只想查找列的唯一值,请尝试:

function uniqueValuesOfColumn() {
return [...new Set(
SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(`Sheet1`)
.getRange(`A:A`)
.getValues()
.flat()
.filter(Boolean)
)]
/* Or
const uniqueValues = [...new Set(
SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(`Sheet1`)
.getRange(`A:A`)
.getValues()
.flat()
.filter(Boolean)
)];
*/
}

将删除空单元格的列的所有值转换为唯一值的数组。这是通过将值的Set"转换"为数组来完成的。

  • Set - JavaScript MDN