gpt4 book ai didi

javascript - 使用另一个数组在 underscorejs 中过滤一个数组

转载 作者:行者123 更新时间:2023-11-29 16:43:46 24 4
gpt4 key购买 nike

var list1 =[{user: "A", id: 'a'},
{user: "B", id: 'b'},
{user: "C", id: 'c'},
{user: "D", id: 'd'},
{user: "E", id: 'e'}];
var list2 = ["A","B","C"];

我有上面两个数组,我想使用 list2 过滤 list1。我的输出应该是 [{id: 'a'},{id: 'b'},{id: 'c'}] 或者只有 ['a','b','c']。

我正在按照以下方式进行过滤,但没有得到任何结果。这里有什么问题?

var ids = _.filter(list1, function(id) { 
_.each(list2, function(name){
return id.user === name;
});
});

最佳答案

在普通的 Javascript 中,您可以只过滤数组,然后将 id 映射到结果集。

var list1 =[{ user: "A", id: 'a' }, { user: "B", id: 'b' }, { user: "C", id: 'c' }, { user: "D", id: 'd' }, { user: "E", id: 'e' }],
list2 = ["A","B","C"],
result = list1.filter(a => list2.includes(a.user)).map(a => a.id);

console.log(result);

带下划线的

  • _.pluck获取属性(property)的值(value),
  • _.contains用于检查值是否在数组中以及
  • _.filter用于返回子集。

var list1 =[{ user: "A", id: 'a' }, { user: "B", id: 'b' }, { user: "C", id: 'c' }, { user: "D", id: 'd' }, { user: "E", id: 'e' }],
list2 = ["A","B","C"],
result = _.pluck(_.filter(list1, a => _.contains(list2, a.user)), 'id');

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

关于javascript - 使用另一个数组在 underscorejs 中过滤一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43199734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com