我正在創建一個谷歌腳本來從多個作業表中獲取多行,將列放入陣列和陣列中,然后抓取現有的并執行相同操作,然后將兩個陣列合并在一起并洗掉重復項:
var existingItems = getSKUdata()
var newItems = getPurchasedata()
var mergedData = existingData
for (item of newItems) {
mergedData.push(item)
}
const mergedCleaned = Array.from(new Set(mergedData.map(JSON.stringify)), JSON.parse)
然后從“margedCleaned”中洗掉“existingItems”中的任何陣列。所以我可以匯入新添加的專案而不會有任何重復。
當前陣列:
newItems = [
['AAA-AAA','AAAA', '01.00'],
['BBB-BBB','BBBB', '02.00'],
['CCC-CCC','CCCC', '03.00'],
['DDD-DDD','DDDD', '04.00']
];
existingItems = [
['AAA-AAA','AAAA', '01.00'],
['BBB-BBB','BBBB', '02.00'],
];
我想“newItems”洗掉所有“existingItems”,這樣我就可以將新的陣列/行寫入我的谷歌表格檔案。
newItems= [
['CCC-CCC','CCCC', '03.00']
['DDD-DDD','DDDD', '04.00']
];
我嘗試了其他問題的多個不同片段,但似乎沒有任何效果,它不會洗掉陣列。只能使用 core-javascript
uj5u.com熱心網友回復:
使用Set并 使用聯合陣列值作為鍵進行過濾:
/*<ignore>*/console.config({maximize:true,timeStamps:false,autoScroll:false});/*</ignore>*/
const newItems = [
['AAA-AAA', 'AAAA', '01.00'],
['BBB-BBB', 'BBBB', '02.00'],
['CCC-CCC', 'CCCC', '03.00'],
['DDD-DDD', 'DDDD', '04.00'],
],
existingItems = [
['AAA-AAA', 'AAAA', '01.00'],
['BBB-BBB', 'BBBB', '02.00'],
],
existingItemsSet = new Set(existingItems.map((row) => row.join('?'))),
filteredNewItems = newItems.filter((row) =>
!existingItemsSet.has(row.join('?'))
);
console.log(filteredNewItems);
<!-- https://meta.stackoverflow.com/a/375985/ --> <script src="https://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504133.html
上一篇:如何使用React-Hook-Form自動保存進行React-Query
下一篇:jQuery滑塊ui顯示值
