我有一个函数,它返回电子表格列中的唯一名称列表。我正在寻找一种方法,我可以使检查不区分大小写,而不强制所有小写。这是我的原始代码:
function testGetUniqueClassNames(){
var sheet = getRosterSheet();
var dataRange = sheet.getDataRange();
var indices = returnIndices();
dataRange = dataRange.getValues();
var classNames = getUniqueClassNames(dataRange, indices.clsNameIndex, indices.crfIdIndex);
Logger.log(classNames);
}
function getUniqueClassNames(dataRange, clsNameIndex, crfIdIndex) {
var classNames = [];
for (var i=2; i<dataRange.length; i++) {
var thisClassName = dataRange[i][clsNameIndex];
var thisClassRoot = dataRange[i][crfIdIndex];
if ((classNames.indexOf(thisClassName)==-1)&&(thisClassName!='')&&(thisClassRoot!='')) {
classNames.push(thisClassName);
}
}
classNames.sort();
return classNames;
}
答案 0 :(得分:1)
为了解决这个问题,我创建了第二个小写数组来检查,但在返回时使用了原始数组。
function testGetUniqueClassNames(){
var sheet = getRosterSheet();
var dataRange = sheet.getDataRange();
var indices = returnIndices();
dataRange = dataRange.getValues();
var classNames = getUniqueClassNames(dataRange, indices.clsNameIndex, indices.crfIdIndex);
Logger.log(classNames);
}
function getUniqueClassNames(dataRange, clsNameIndex, crfIdIndex) {
var classNames = [];
var classNamesLC = [];
for (var i=2; i<dataRange.length; i++) {
var thisClassName = dataRange[i][clsNameIndex];
var thisClassNameLC = thisClassName.toLowerCase();
var thisClassRoot = dataRange[i][crfIdIndex];
if ((classNamesLC.indexOf(thisClassNameLC)==-1)&&(thisClassName!='')&&(thisClassRoot!='')) {
classNames.push(thisClassName);
classNamesLC.push(thisClassNameLC);
}
}
classNames.sort();
return classNames;
}