javascript - underscorejs 如何比较两个数组?

标签 javascript underscore.js

我有两个数组,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/

相关文章:

javascript - Node.js HTTP 代理架构 : downloading big amount of data for client

javascript - 如何使用多嵌套 json 值修补响应式(Reactive)表单

javascript - 在 Backbone 模型中将数组渲染为列表

javascript - 多次下划线去抖动调用

javascript - underscore.template 的 _.templateSettings 的正确 mustache 模板配置是什么?

javascript - 使用 Linq.js 从 Json 数据中的三个字段中选择两个字段

javascript - underscore.js 和 backbone.js 的外部 html 模板

javascript - Passport 未知认证策略

javascript - 如何以编程方式将网页的各个部分指示为 "selected"

javascript - 如果我在我的页面上使用 CSS 缩放,然后将另一个包含动画的网站加载到 iframe 中,我的页面会变得模糊并且动画行为不正常