Я новичок в JavaScript и могу нуждаться в помощи с проблемой, с которой я столкнулся при работе над скриптом Google Apps.
То, что я собираюсь сделать, это фильтровать мои данные на основе массива, который я беру из определенной c ячейки в определенном c листе, который содержит строковые элементы, которые мне не нужны сохранить в моих данных. Другими словами, строки, содержащие эти ключевые слова, должны быть удалены с моего листа.
До сих пор мне удавалось сделать это, используя единственный строковый элемент в моей функции фильтрации.
// elements to filter out.
var keys = [['a','b','c']];
// example data.
var data = [['a',1,2],
['c',4,3],
['d',3,4]];
// my approach for a single element which works.
var filterText = "a";
var newData1 = data.filter(function(item) {
return item[0] !== filterText;
});
console.log(newData1); // output: [ [ 'c', 4, 3 ], [ 'd', 3, 4 ] ]
Однако , если я попытаюсь расширить этот logi c на случай, когда я использую массив для фильтрации своих данных, у меня проблемы. Я написал приведенный ниже код, который правильно проверяет мои данные, но не возвращает ожидаемого результата. Я знаю, что упускаю важную часть кода здесь, но не могу понять, какая именно. Я несколько раз перевернул код, но все равно застрял.
for(var n=0; n<keys[0].length; n++) {
// console.log(keys[0][n]);
var newData2 = data.filter(function(item) {
// console.log(item[0] === keys[0][n]);
return item[0] === keys[0][n];
})
};
console.log(newData2); // output: [ [ 'c', 4, 3 ] ]
Надеюсь, вы, ребята, укажете мне верное направление и поможете понять, в чем я делаю здесь свою ошибку.
Спасибо!