首页 > 其他分享 >JS数组对象合并,a,b 合并为c

JS数组对象合并,a,b 合并为c

时间:2023-10-18 15:58:15浏览次数:40  
标签:checked true 合并 ids JS 数组 false nickname id

var a = [
  {id: 2, nickname: "韩信", checked: false},
  {id: 7, nickname: "刘邦", checked: true},
];
var b = [
  {id: 2, nickname: "韩信", checked: false},
  {id: 7, nickname: "刘邦", checked: false},
  {id: 8, nickname: "项羽", checked: false},
];

var ids = {}; // 用于跟踪已经存在的id

var c = a.concat(b).filter(item => {
  if (!ids[item.id]) { // 如果ids中不存在当前id,则将当前id添加到ids中,并保留该项
    ids[item.id] = true;
    return true;
  }
  return false; // 如果ids中已经存在当前id,则过滤掉该项
});

console.log(c);

 这里,C里的id是唯一,且A里的checked=true时,C对应的也会是true

下面是输出结果

 

标签:checked,true,合并,ids,JS,数组,false,nickname,id
From: https://www.cnblogs.com/basstk/p/17772550.html

相关文章

  • Acwing 800.数组元素的目标和,双指针初步
    Acwing800.数组元素的目标和给定升序的有序数组A(长度为n),B(长度为m)以及目标值x,求出满足\(A[i]+B[j]=x\)的数对\((i,j)\),题目保证仅有唯一解输入样例:456124734689输出样例:11双指针来做定义指针i,j,其中i指向A,j指向B,且i=0,指向A的首元素,j=m-1,指向B的末......
  • keydb 6.3.3 modjs docker 镜像
    keydb6.3.3已经发布一段时间了,但是ModJS的支持镜像一直还没有提供,就基于现有的基础镜像搞了一个方便学习使用Dockerfile FROMeqalpha/modjsasbase FROMeqalpha/keydb:latestRUNmkdir-p/usr/lib/keydb/modules#Copyoverprecompiledubuntu1......
  • js中数组的各种遍历方式
    一、ES5中数组遍历方式letarr=[1,2,3,2,4]1、for循环for(leti=0;i<arr.length;i++){console.log(arr[i])}//123242、forEach():没有返回值,调用数组的每个元素,并将元素传递给回调函数。//参数:item(必需)->当前元素//index(可选)->......
  • JsonPath使用(Java)
    JsonPath使用(Java)Java有一些类似于jq的语法库和工具。其中一个叫做JsonPath,它允许使用类似于jq的语法来查询和操作JSON数据。可以使用JsonPath来提取特定的JSON字段、过滤数据、执行计算等操作。另外,还有一些其他的Java库和框架也提供了类似的功能,比如FastJson,Gson和Jackson。这......
  • 直播软件搭建,利用原生JS实现回到顶部以及吸顶效果
    直播软件搭建,利用原生JS实现回到顶部以及吸顶效果  <style>    .box1{      width:1200px;      height:800px;            margin:0auto;    }    .box2{      width:1200px; ......
  • cube.js oracle 新版本npm 包支持
    cube.js目前来说是越来越复杂了(不是代码多复杂,而且融合了不少三方语言,python,rust,nodeaddonjava)如果网络不是很好的情况下编译cube.js是极其痛苦的,而且不少依赖问题,cube.js实际上很早就支持oracle,但是今天oracle比较给力提供了基于node的原生实现这样node系统集成......
  • Node.js 21 版本已发布!
    本文翻译自Node.js21isnowavailable!,来源:TheNode.jsProject,略有删改。我们很高兴地宣布Node.js21的发布!亮点包括V8JavaScript引擎更新到11.8,稳定fetch和WebStreams,一个新的实验性标志来切换模块默认值(--experimental-default-type),一个内置的WebSocket客户端,我们的测......
  • C语言-数组初始化方式
    C语言-数组初始化方式#include<stdio.h>#include<string.h>//数组初始化intmain(){ //方式1:{0} intarr1[3]={0}; for(inti=0;i<3;i++){ printf("arr1[%d]=%d\n",i,arr1[i]); } //方式2:for循环 intarr2[3]; for(inti=0;i<3;i++)......
  • 用jstack导出线程信息,用jmap导出线程信息和堆数据信息
    jmap导出的*.hprof文件需要用jvisualvm.exe工具来查看(当然也有第三方的其他工具),jdk8之后的是不会自带了需要手动安装;jmap导出的文件里是包含了线程信息,但是没有jstack导出的多,比如jstack里还有具体等待哪个锁的信息,这个锁的对象类型,还能看到是哪个线程获得了这个锁locked;jmap使......
  • 整型数组逆序
    整型数组逆序由于int型数组没有实现comparator接口,所以不支持逆序排序,所以我们建数组的时候就建成Integer型就好了Scannerin=newScanner(System.in);inttarget=Integer.parseInt(in.nextLine());String[]split=in.nextLine().split("");Integer[]arr=n......