本文介绍一种高效方法,用于合并两个javascript数组,并在特定条件下提取数据构建新的数组。假设我们有两个数组,数组a包含id字段,数组b包含cid字段及其他字段。目标是:当a数组中元素的id值与b数组中元素的cid值相等时,提取a的id和b的其他字段,创建一个新数组。
示例:数组A包含id,数组B包含cid和des字段。我们需要根据id和cid值匹配,生成一个新数组,每个元素包含id和匹配到的B数组元素的其他字段。
以下方案使用map和filter方法实现高效合并:
let a = [{id:1},{id:2}]; let b = [{cid:1, des:"1"},{cid:1, des:"11"},{cid:2, des:"2"}]; let c = a.map(itemA => ({ ...itemA, list: b.filter(itemB => itemB.cid === itemA.id) }));
代码首先遍历数组A。对于A数组的每个元素,filter方法在B数组中查找cid与id值匹配的元素。filter返回一个包含所有匹配元素的新数组,赋值给list属性。最后,使用展开运算符...将itemA(A数组元素)和list合并到一个新对象中,添加到数组c。
此方法根据id和cid匹配,将A数组的id和B数组的其他字段组合到新数组c中。如果A数组中的一个id在B数组中有多个匹配项,list属性将包含所有匹配项。
这种方法简洁高效,充分利用了JavaScript内置方法的优势,避免了复杂的循环嵌套,提高了代码可读性和性能。
以上就是JavaScript数组如何高效匹配并合并数据构建新数组?的详细内容,更多请关注知识资源分享宝库其它相关文章!
版权声明
本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com
发表评论