【发布时间】:2021-02-08 21:56:18
【问题描述】:
我有两个数组循环,以匹配第二个数组vals1 中的第一个数组vals2 中的元素。如果vals1 中的元素(索引[i][0])存在于vals2(索引[j][0])中,我需要对@987654325 中的元素(索引[j][1])进行分级@ 并推送到vals1(或创建一个包含vals1 的所有元素和vals2 的一个新数组)如果它不存在,我想在我会使用元素的地方分配“未分配”[j ][1] 来自```vals2``
So:
If vals1 = [[ 'item3', 3, 2, 6 ],[ 'item6', 4, 7, 28 ],[ 'item8', 1, 8, 8 ],[ 'item2', 6, 12, 72 ]]
and vals2 = [[ 'item1', 15 ],[ 'item2', 4 ],[ 'item3', 1 ],[ 'item4', 2 ]]
I'm looking for the following result:
[[ 'item3', 3, 2, 6,1 ],[ 'item6', 4, 7, 28,'Unassigned' ],[ 'item8', 1, 8, 8,Unassigned' ],[ 'item2', 6, 12, 72,4 ]]
我目前的脚本是:
function lookup () {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('Sheet11');
var vals1 = sheet1.getRange(2,1,sheet1.getLastRow(),sheet1.getLastColumn()).getValues();
var sheet2 = ss.getSheetByName('Sheet12');
var vals2 = sheet2.getRange(2,1,sheet2.getLastRow(),sheet2.getLastColumn()).getValues();
console.log(vals1);
[
[ 'item3', 3, 2, 6 ],
[ 'item6', 4, 7, 28 ],
[ 'item8', 1, 8, 8 ],
[ 'item2', 6, 12, 72 ],
]
console.log(vals2);
[
[ 'item1', 15 ],
[ 'item2', 4 ],
[ 'item3', 1 ],
[ 'item4', 2 ]
]
var result =[];
for(var i=0;i<vals1.length;i++){
for(var j=0;j<vals2.length;j++){
var desc = vals1[i][0]
var qty = vals1[i][1]
var selling = vals1[i][2]
var total = vals1[i][3]
var desc2 = vals2[j][0]
var cost = vals2[j][1]
if(desc === desc2){
result.push([desc,qty,selling,total,cost])
} else {
result.push([desc,qty,selling,total,'Unassigned'])
}
}
}
console.log(result)
}
我得到的结果是:
[ [ 'item3', 3, 2, 6, 'Unassigned' ],
[ 'item3', 3, 2, 6, 'Unassigned' ],
[ 'item3', 3, 2, 6, 1 ],
[ 'item3', 3, 2, 6, 'Unassigned' ],
[ 'item3', 3, 2, 6, 'Unassigned' ],
[ 'item3', 3, 2, 6, 'Unassigned' ],
[ 'item2', 4, 7, 28, 'Unassigned' ],
[ 'item2', 4, 7, 28, 4 ],
[ 'item2', 4, 7, 28, 'Unassigned' ],
[ 'item2', 4, 7, 28, 'Unassigned' ],
[ 'item2', 4, 7, 28, 'Unassigned' ],
[ 'item2', 4, 7, 28, 'Unassigned' ],
[ 'item4', 1, 8, 8, 'Unassigned' ],
[ 'item4', 1, 8, 8, 'Unassigned' ],
[ 'item4', 1, 8, 8, 'Unassigned' ],
[ 'item4', 1, 8, 8, 2 ],
[ 'item4', 1, 8, 8, 'Unassigned' ],
[ 'item4', 1, 8, 8, 'Unassigned' ],
[ 'item2', 6, 12, 72, 'Unassigned' ],
[ 'item2', 6, 12, 72, 4 ],
[ 'item2', 6, 12, 72, 'Unassigned' ],
[ 'item2', 6, 12, 72, 'Unassigned' ],
[ 'item2', 6, 12, 72, 'Unassigned' ],
[ 'item2', 6, 12, 72, 'Unassigned' ],
[ 'item4', 3, 34, 102, 'Unassigned' ],
[ 'item4', 3, 34, 102, 'Unassigned' ],
[ 'item4', 3, 34, 102, 'Unassigned' ],
[ 'item4', 3, 34, 102, 2 ],
[ 'item4', 3, 34, 102, 'Unassigned' ],
[ 'item4', 3, 34, 102, 'Unassigned' ],
[ 'item3', 2, 8, 16, 'Unassigned' ],
[ 'item3', 2, 8, 16, 'Unassigned' ],
[ 'item3', 2, 8, 16, 1 ],
[ 'item3', 2, 8, 16, 'Unassigned' ],
[ 'item3', 2, 8, 16, 'Unassigned' ],
[ 'item3', 2, 8, 16, 'Unassigned' ],
[ 'item1', 8, 32, 256, 15 ],
[ 'item1', 8, 32, 256, 'Unassigned' ],
[ 'item1', 8, 32, 256, 'Unassigned' ],
[ 'item1', 8, 32, 256, 'Unassigned' ],
[ 'item1', 8, 32, 256, 'Unassigned' ],
[ 'item1', 8, 32, 256, 'Unassigned' ],
[ 'item1', 21, 32, 672, 15 ],
[ 'item1', 21, 32, 672, 'Unassigned' ],
[ 'item1', 21, 32, 672, 'Unassigned' ],
[ 'item1', 21, 32, 672, 'Unassigned' ],
[ 'item1', 21, 32, 672, 'Unassigned' ],
[ 'item1', 21, 32, 672, 'Unassigned' ],
[ 'item2', 2, 7, 14, 'Unassigned' ],
[ 'item2', 2, 7, 14, 4 ],
[ 'item2', 2, 7, 14, 'Unassigned' ],
[ 'item2', 2, 7, 14, 'Unassigned' ],
[ 'item2', 2, 7, 14, 'Unassigned' ],
[ 'item2', 2, 7, 14, 'Unassigned' ],
[ 'item5', 4, 6, 24, 'Unassigned' ],
[ 'item5', 4, 6, 24, 'Unassigned' ],
[ 'item5', 4, 6, 24, 'Unassigned' ],
[ 'item5', 4, 6, 24, 'Unassigned' ],
[ 'item5', 4, 6, 24, 4 ],
[ 'item5', 4, 6, 24, 'Unassigned' ],
[ 'item8', 9, 8, 72, 'Unassigned' ],
[ 'item8', 9, 8, 72, 'Unassigned' ],
[ 'item8', 9, 8, 72, 'Unassigned' ],
[ 'item8', 9, 8, 72, 'Unassigned' ],
[ 'item8', 9, 8, 72, 'Unassigned' ],
[ 'item8', 9, 8, 72, 'Unassigned' ],
[ 'item3', 16, 2, 32, 'Unassigned' ],
[ 'item3', 16, 2, 32, 'Unassigned' ],
[ 'item3', 16, 2, 32, 1 ],
[ 'item3', 16, 2, 32, 'Unassigned' ],
[ 'item3', 16, 2, 32, 'Unassigned' ],
[ 'item3', 16, 2, 32, 'Unassigned' ],
[ 'item7', 32, 6, 192, 'Unassigned' ],
[ 'item7', 32, 6, 192, 'Unassigned' ],
[ 'item7', 32, 6, 192, 'Unassigned' ],
[ 'item7', 32, 6, 192, 'Unassigned' ],
[ 'item7', 32, 6, 192, 'Unassigned' ],
[ 'item7', 32, 6, 192, 'Unassigned' ],
[ 'item6', 1, 21, 21, 'Unassigned' ],
[ 'item6', 1, 21, 21, 'Unassigned' ],
[ 'item6', 1, 21, 21, 'Unassigned' ],
[ 'item6', 1, 21, 21, 'Unassigned' ],
[ 'item6', 1, 21, 21, 'Unassigned' ],
[ 'item6', 1, 21, 21, 'Unassigned' ],
我使用的数据集分别有 1701 行和 228 行。当我最初运行脚本时,它打印了超过 400 000 行数据。
任何帮助将不胜感激
【问题讨论】:
标签: javascript arrays google-apps-script google-sheets