Javascript case sensitive
-
09-10-2019 - |
Frage
Wie kann ich die Variable „TEILNUM“ nicht case sensitive sein. Als ich das Skript ausführen, wird es nicht „ABCD“ erkennen, wenn ich für „ABCD“ bin auf der Suche. Ich bin mir nicht sicher, was zu tun ist.
function doStuff() {
var ss = SpreadsheetApp.getActiveSheet();
var starting_row = 2; // starting row to scan for part# on column C
// outer loop, loop over products sold
for (var j=6;j<=16;j++) {
var r = ss.getRange(j,2);
// read inventory part number entered
var partnum = r.getValue();
if (!partnum) {
continue; // attempt to skip over empty rows in the B6:B16 range
}
var partcount = parseInt(ss.getRange(j,1).getValue());
if (isNaN(partcount) || partcount<=0) {
// invalid quantity. skip.
continue;
}
// Browser.msgBox("partnum = "+partnum);
// get list of known part # from the spreadsheet
var parts = ss.getRange(starting_row,3,9999,1).getValues();
var found = false;
for (var i=0,l=parts.length;i<l;++i) {
if (parts[i]==partnum) {
// we have found our part. grab inventory count cell.
found = true;
var count = ss.getRange(starting_row+i,1).getValue();
if (count-partcount<0) {
Browser.msgBox("Error: Inventory for part "+partnum+", is "+count);
} else {
// write back the count number for that part, decremented by 1.
ss.getRange(starting_row+i,1).setValue(count-partcount);
// Browser.msgBox("Inventory updated.");
}
break; // either way, we're done with that part.
}
}
if (!found) {
Browser.msgBox("Part# "+partnum+" not found.");
}
}
}
Lösung
Für calrity willen, hier ist die Antwort. Obwohl @Freddie war der erste, es zu erwähnen.
// get list of known part # from the spreadsheet
var parts = ss.getRange(starting_row,3,9999,1).getValues();
var found = false;
for (var i=0,l=parts.length;i<l;++i) {
if (parts[i]==partnum) {
wird:
// get list of known part # from the spreadsheet
var parts = ss.getRange(starting_row,3,9999,1).getValues();
var found = false;
for (var i=0,l=parts.length;i<l;++i) {
if (parts[i].toLowerCase()==partnum.toLowerCase()) { // <-- NOTE CHANGE HERE
Bearbeiten Für Nicht-String-Objekte
// get list of known part # from the spreadsheet
var parts = ss.getRange(starting_row,3,9999,1).getValues();
var found = false;
for (var i=0,l=parts.length;i<l;++i) {
if ((parts[i]+"").toLowerCase()==(partnum+"").toLowerCase()) { // <-- NOTE CHANGE HERE
dank Schatten Wizard
Andere Tipps
vielleicht können Sie toUpperCase () verwenden?
Schatten-Assistent kam mit der Antwort auf das mein Problem gelöst
if ((Teile [i] + "") .tolowercase () == (TEILNUM + "") .tolowercase ()) -
Danke
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow