我有两个数组,balances 和 commits
balances = [
{name: 'vacation', value: ''21},
{name: 'account', value: '200'},
{name: 'order', value: '15'},
]
commits = [
{balanceName: 'vacation', paramName: 'number of days'},
{balanceName: 'order', paramName: 'number of items'}
]
我想删除不在提交中的表单余额,在这个例子中我想从余额中删除帐户值,因为它不在提交的任何 balanceName 中 我如何通过下划线或任何其他库来做到这一点
最佳答案
您可以像这样使用 undescore.js
来做到这一点:
var balances = [
{name: 'vacation', value: '21'},
{name: 'account', value: '200'},
{name: 'order', value: '15'}
]
var commits = [
{balanceName: 'vacation', paramName: 'number of days'},
{balanceName: 'order', paramName: 'number of items'}
]
balances2=
_.filter(balances,(b)=>commits.map(c=>c.balanceName).indexOf(b.name)>-1);
console.log("using shorter syntax");
console.log(balances)
//OR
balances=
_.filter(balances,function(b){return commits.map(function(c){return c.balanceName}).indexOf(b.name)>-1});
console.log("ES5 syntax");
console.log(balances2)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
_.filter
将返回所有符合条件的条目。 _.find
,例如将只返回第一个条目。
我还使用了 _.map
,它通过使用转换函数将具有多个属性的数组转换为其他数组(在我的例子中是 c=>c.balanceName
)。
关于javascript - underscorejs 如何比较两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45325998/