0
比方說,我有兩個數組:的JavaScript - 過濾掉兩個數組,並採取了愚弄
var sellersDatabase = [
{ name: 'Mark', start_date: '2017-06-27' },
{ name: 'Jane', start_date: '2017-06-27' }
];
var sellersAPICall = [
{ name: 'Mark', start_date: '2017-06-27' },
{ name: 'Joe', start_date: '2017-06-22' },
{ name: 'Steven', start_date: '2017-04-11' },
{ name: 'Jane', start_date: '2017-06-27' }
];
會如何,無論是使用ES6或Lodash,讓那些不包含在第一陣列中的區別?是的,我試過lodash的difference()
。
所以,我期望的輸出將是:
var toInsertIntoDB = [
{ name: 'Joe', start_date: '2017-06-22' },
{ name: 'Steven', start_date: '2017-04-11' }
];
這樣做:
javascript const toInsertToDB = _.difference(sellersDatabase, sellersAPICall); console.log(toInsertToDB);
輸出:
[{ "name": "Mark", "start_date": "2017-06-27" }, { "name": "Jane", "start_date": "2017-06-27" }]
(當我想要相反)
哦,老兄!應該繼續閱讀。我可能會有可能有相同名稱的賣家。有沒有辦法檢查'name'和'start_date'?我可以使用_.differenceWith(sellersAPICall,sellersDatabase,_.isEqual);'似乎。 – nn2
你沒有寫過你的問題,所以我不能繼續閱讀:)你仍然可以使用'_.differenceBy()' - 參見第二個例子。 –
@Ori Drori:在你的第二個例子中返回'o.name +' - '+ o.date;'應該返回'o.name +' - '+ o.start_date;' – Harold