Skip to content

Commit cf41613

Browse files
authored
fix: Update Removing Duplicates to use object for uniqueness check (#385)
1 parent 290cd98 commit cf41613

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

sheets/removingDuplicates/removingDuplicates.gs

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,21 @@
2020
*/
2121
function removeDuplicates() {
2222
// [START apps_script_sheets_sheet]
23-
let sheet = SpreadsheetApp.getActiveSheet();
24-
let data = sheet.getDataRange().getValues();
23+
const sheet = SpreadsheetApp.getActiveSheet();
24+
const data = sheet.getDataRange().getValues();
2525
// [END apps_script_sheets_sheet]
26-
// [START apps_script_sheets_new_data]
27-
let newData = [];
28-
// [END apps_script_sheets_new_data]
29-
for (let i in data) {
30-
let row = data[i];
31-
let duplicate = false;
32-
for (let j in newData) {
33-
if (row.join() == newData[j].join()) {
34-
duplicate = true;
35-
}
36-
}
26+
const uniqueData = {};
27+
for (let row of data) {
28+
const key = row.join();
3729
// [START apps_script_sheets_duplicate]
38-
if (!duplicate) {
39-
newData.push(row);
40-
}
30+
uniqueData[key] = uniqueData[key] || row;
4131
// [END apps_script_sheets_duplicate]
4232
}
4333
// [START apps_script_sheets_clear]
4434
sheet.clearContents();
35+
// [START apps_script_sheets_new_data]
36+
const newData = Object.values(uniqueData);
37+
// [END apps_script_sheets_new_data]
4538
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
4639
// [END apps_script_sheets_clear]
4740
}

0 commit comments

Comments
 (0)