【发布时间】:2020-11-17 01:02:11
【问题描述】:
我正在尝试从两个看起来像这样的数组中获取唯一值:
array[{A,B,C},{C,D,E},{1,3,2},....]
两者看起来一样。
我尝试使用concat 和从循环中获取唯一值来添加它们。
所以我最终得到了这个:
function uniqueValues() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet = ss.getSheetByName("arr1");
const array1 = srcSheet.getRange(1, 1, srcSheet.getLastRow(), srcSheet.getLastColumn()).getValues();
var srcSheet1 = ss.getSheetByName("arr2");
const array2 = srcSheet1.getRange(1, 1, srcSheet1.getLastRow(), srcSheet1.getLastColumn()).getValues();
var dodaj = array1.concat(array2);
for (var i=0; i<dodaj.length; i++) {
var listI = dodaj[i];
loopJ: for (var j=0; j<dodaj.length; j++) {
var listJ = dodaj[j];
if (listI === listJ) continue;
for (var k=listJ.length; k>=0; k--) {
if (listJ[k] !== listI[k]) continue loopJ;
}
dodaj.splice(j, 1);
}
}
var result = ss.getSheetByName("test").getRange(2, 5, dodaj.length, 3).setValues(dodaj);
//Logger.log(dodaj);
}
当数组看起来像这样 array[{A,B},{C,D}] 但它开始返回重复的三个元素时,它运行良好......我不知道有什么问题。
【问题讨论】:
-
我认为提供您期望的示例输入和输出值将帮助用户了解您当前的脚本问题并思考解决方案。
-
一开始您在谈论 2 个值数组,然后您提供 1 个数组
array[{A,B,C},{C,D,E},{1,3,2},....]作为输入。请使用有效输入和预期输出更新问题。
标签: javascript arrays google-sheets