javascript - 基于条件数组的数组过滤器

标签 javascript arrays node.js

我有一个包含对象 A 的数组:

A = [ 
     { 
       id: 12345,
       folder: 'folder1',
       name: 'Name1'
     },
     { 
       id: 12346,
       folder: 'folder1',
       name: 'Name2'
     },
     { 
       id: 12347,
       folder: 'folder1',
       name: 'Name3'
     },
     { 
       id: 12348,
       folder: 'folder1',
       name: 'Name4'
     }
    ]

和一个带有 ids 的数组 B:

B = [12345, 12348]

我想根据来自 B 的 id 从 A 过滤/获取一个带有“文件夹”+“名称”的新数组

res = ["folder1/Name1", "folder1/Name4"]

不确定如何根据 B 中的 ID“过滤”A?

最佳答案

一个非常快速的方法是使用 filtermap

A.filter(function(a) {
   return B.indexOf(a.id) >= 0;
})
.map(function(a) {
   return a.folder+'/'+a.name;
});

关于javascript - 基于条件数组的数组过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27151323/

相关文章:

javascript - 防止 googlemaps javascript 加载两次

arrays - AppleScript 记录列表到 Swift 数组(或更好)

node.js - GRPC如何复用客户端连接?

javascript - 如何根据值验证内容可编辑段落文本长度

javascript - 如何知道是否使用 jQuery 以百分比或像素设置 DIV 宽度

arrays - 传递 block 时 Array#sort 如何工作?

node.js - 如何使用 aurelia 让 webpack 与 Electron 一起工作?

javascript - 我怎样才能让这个node.js函数返回一个值

javascript - JsHint 警告其他文件中的函数

java - Jackson JSON 无法反序列化具有自定义根名称的元素数组?