indexOf retournent -1 en dépit de l'objet dans le tableau Javascript dans Google feuille de calcul des Scripts

Je suis en train d'écrire un script pour une feuille de calcul Google Docs à lire une liste de directeurs et de les ajouter à un tableau si elles ne figurent pas déjà dans les.

Cependant, je ne peux pas sembler obtenir indexOf pour revenir à autre chose que de -1 pour les éléments qui sont contenus dans le tableau.

Quelqu'un peut me dire ce que je fais de mal? Ou m'indiquer un moyen plus facile de faire cela?

C'est mon script:

function readRows() {
var column = SpreadsheetApp.getActiveSpreadsheet().getRangeByName("Director");
var values = column.getValues();
var numRows = column.getNumRows();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var directors = new Array();

for (var i = 0; i <= numRows - 1; i++) {
    var row = values[i];
    if (directors.indexOf(row) == -1) {
        directors.push(row);
    } else {

        directors.splice(directors.indexOf(row), 1, row);

    }
}

for (var i = 2; i < directors.length; i++) {
    var cell = sheet.getRange("F" + [i]);
    cell.setValue(directors[i]);
}
};
Le bloc else semble redondant. Il remplace ligne avec ligne.
Je vais aussi ajouter que la "définition" de valeurs qui peut être fait de manière plus efficace, à savoir avec setValues() plutôt que setValue() à l'intérieur d'une boucle. Mais je ne voulais pas compliquer ma réponse trop. Si vous êtes incapable de travailler sur la façon de faire (ou de trouver un Q&A sur ce forum qui traite de), vous pouvez poster une nouvelle question.

OriginalL'auteur thrgamon | 2013-06-11