我有两个二维数组。
第一个数组包含所选 ID 的列表:
ids_list = [[2, 3], [3, 5]]
第二个保存 ID 和姓名:
control_mapping = [[1, "name-1"], [2, "name-2"], [3, "name-3"], [4, "name-4"], [5, "name-5"], [6, "name-6"]]
我想做的是用所有选定的 ID 的名称构建一个串联字符串
所以想要的结果是
["name-2\n name-2", "name-3\n name-5"]
我知道我可以做 4 个嵌套的 for 循环,但我希望有比这更有效的东西。 App脚本似乎有很多技巧,但这个ole c程序员还不知道。
非常感谢!
查找两个数组之间的匹配项
function myfunk00() {
const a1 = [[2, 3], [3, 5]];
const a2 = [[1, "name-1"], [2, "name-2"], [3, "name-3"], [4, "name-4"], [5, "name-5"], [6, "name-6"]];
const idA = a2.map(r => r[0]);
const sNames = a1.reduce((acc,r,i) => {
let idx = idA.indexOf(r[0]);
if(~idx) {
acc.push([i,a2[idx][0],a2[idx][1]]);
}
return acc;
},[["a1-index","a2-col1","a2-col2"]]);
Logger.log(JSON.stringify(sNames));
}
输出显示在工作表上:
A | B | C | |
---|---|---|---|
1 | a1-索引 | a2-col1 | a2-col2 |
2 | 0 | 2 | 名称-2 |
3 | 1 | 3 | 名称-3 |