繁体   English   中英

基于单个属性从 javascript 中的两个 arrays 中删除重复项

[英]Removing duplicates from two arrays in javascript based on a single attribute

我在 javascript 中有两个 arrays,我想做两个不同的操作

  1. Map 每个列表中每个元素的属性
  2. 根据属性过滤掉任何唯一值

到目前为止我有这个 function

export function generateDisplayedLabels(systemLabels, masterState){
  const mappedSystemlabels = systemLabels.map(label => Object.assign(label, {type: "system"}))
  const mappedMasterlabels = masterState.map(label => Object.assign(label, {type: "master"}))
  const displayedLabels = _.union(mappedSystemlabels, mappedMasterState);
  return displayedLabels

}

这将起作用,除了以下事实,即每当我在开始时对对象进行 map 时,“唯一”元素不再是唯一的,因为它们有另一个属性映射在其上。 是否有一种省时的方法,我可以过滤掉已映射到其上的非唯一元素,而忽略属性。

 let ar1 = [ { id: 1, name: 'stack', }, { id: 2, name: 'react', }, ]; let ar2 = [ { id: 1, name: 'javascript', }, { id: 2, name: 'overflow', }, { id: 2, name: 'react', }, ]; console.log(_.unionBy(ar1, ar2, 'id')); console.log("======"); console.log(_.unionBy(ar1, ar2, 'name'));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM