Если вы хотите постоянно перенаправлять вывод, вы можете сделать:
#redirect STDOUT before calling other functions
open STDOUT,'>','outputfile.txt' or die "can't open output";
system('ls;df -h;echo something'); #all will be redirected.
Из документации lodash третьим аргументом для differenceBy
является
blockquote>
[iteratee=_.identity] (Function)
: итератор вызывается для каждого элемента.Исходя из этого, вы можете использовать
var current = [ { id: 1 }, { id: 2 }, { id: 3 }, { id: 4 } ];
и
var next = [ { conversation_id: 1 }, { conversation_id: 2 }, { conversation_id: 4 } ];
, затем
var difference = _.differenceBy(current, next, function(obj) { return obj.id || obj.conversation_id; });
Или сокращать их с помощью функции стрелки:
var difference = _.differenceBy(current, next, (x) => x.id || x.conversation_id)
Я думаю, что вы можете использовать смесь javascript и lodash для решения этой проблемы.
var arrayList = [
{
id: 1
},
{
id: 2
},
{
id: 3
},
{
id: 4
}
];
var conv_array = [
{
conversation_id: 1
},
{
conversation_id: 2
},
{
conversation_id: 4
}
];
var itemsNotInArray = [];
arrayList.filter(function (item) {
if (!_.find(conv_array, {conversation_id: item.id })) {
console.log("not in array", item);
itemsNotInArray.push(item);
}
});
console.log("result you expected", itemsNotInArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>