如何比较两个数组并在id匹配的情况下更改名称?(代码片段)

author author     2022-12-27     715

关键词:

我有一个学生数组,如下所示

student=[id:1,name:'Sam',age:23,id:2,name:'Jolia',age:23,id:3,name:'Peter',age:23]

我还有另一个包含了一些学生的最新年龄值,比如下面的例子。

updated=[id:2,age:25,id:3,age:21]

在本例中,我想通过这两个数组的Id找到交叉点,然后用更新后的数组改变学生数组的年龄值。

预期结果

 student=[id:1,name:'Sam',age:23,id:2,name:'Jolia',age:25,id:3,name:'Peter',age:21]

id:2和id:3的值发生了变化,因为update包括这些id值。

我试着用map来迭代两个数组,但没有成功,而且我觉得不合理。

updated.map(e=>
   if(e.id==student.map(j=>j.id))
     e.age=j.age;
   
 ) 
答案

let updated=[id:2,age:25,id:3,age:21];
let student=[id:1,name:'Sam',age:23,id:2,name:'Jolia',age:23,id:3,name:'Peter',age:23];
student.forEach(e =>
  let idx = updated.findIndex(u => u.id == e.id);
  if(idx >=0) 
      e.age = updated[idx].age;
  
);

console.log(student);
另一答案

var student=[id:1,name:'Sam',age:23,id:2,name:'Jolia',age:23,id:3,name:'Peter',age:23];
var updated=[id:2,age:25,id:3,age:21];

updated.forEach(delta => 
  student.forEach(record => 
    if (delta.id === record.id) 
      record.age = delta.age;
      return false;
    
  );
);

console.log(student);

如何在没有匹配索引的情况下比较来自两个 DF 的两个日期?

】如何在没有匹配索引的情况下比较来自两个DF的两个日期?【英文标题】:HowtocomparetwodatesfromtwoDFwithoutmatchingindex?【发布时间】:2019-01-2321:50:47【问题描述】:df1USERIDDATE11/1/201811/2/201811/3/201821/2/201821/3/201831/3/2018df2USERIDDATE11/1/2018... 查看详情

如何在 es6 中仅比较和过滤两个对象数组中不匹配的数组

】如何在es6中仅比较和过滤两个对象数组中不匹配的数组【英文标题】:Howtocompareandfilteronlyunmatchedarraysfromtwoarrayofobjectsines6【发布时间】:2020-04-2423:55:02【问题描述】:在我的Angular应用程序中,我试图仅获取从UI修改的更新数组... 查看详情

如何在不影响先前视图的情况下更改 UINavigationBar 标题的名称?

】如何在不影响先前视图的情况下更改UINavigationBar标题的名称?【英文标题】:HowtochangethenameofUINavigationBartitlewithoutaffectingpriorviews?【发布时间】:2013-07-2104:24:52【问题描述】:我的应用中有三个视图。我的主视图控制器(称为... 查看详情

如何比较对象数组,并在匹配时合并共享属性的值?

】如何比较对象数组,并在匹配时合并共享属性的值?【英文标题】:Howtocompareanarrayofobjects,andmergethevalueofasharedpropertywhenthere\'samatch?【发布时间】:2017-09-0817:26:56【问题描述】:背景在我正在进行的一个项目中,我创建了一个Bui... 查看详情

如何在不使用 strcmp 和方括号的情况下比较字符串?

】如何在不使用strcmp和方括号的情况下比较字符串?【英文标题】:Howtocomparestringwithoutusingstrcmpandsquarebrackets?【发布时间】:2016-02-1101:40:55【问题描述】:例如,我有一个结构数组,其中包含很多名称,并且我有一个指向该结构... 查看详情

如何提取json数组并在没有tableview的情况下使用它

】如何提取json数组并在没有tableview的情况下使用它【英文标题】:howtoextractjsonarrayanduseitwithouttableview【发布时间】:2017-01-0507:15:45【问题描述】:假设我收到了这样的JSON响应:"product_list"=("product_id"=33;"product_image"=();"product_sku"=as... 查看详情

如何比较两个目录并在python中输出更改的文件(代码片段)

我在Linux中有两个目录,其中有两个文件。我需要比较这两个目录并打印出更改的文件。folder1:file1.txtfile2.txtfolder2:file1.txtfile2.txt我需要将folder1与folder2进行比较,并打印出这两个目录中不同的文件名。我想首先使用ls命令获取文... 查看详情

如何将arraykey名称与另一个arraykey名称匹配(代码片段)

我有2个Array,两个Array共同的是Director_id来匹配我试图用另一个数组的值映射一个数组的键。$invest_details=DB::table('directors_invest')->join('directors','directors.id','=','directors_invest.director_id')->select('directors_inves 查看详情

如何在没有模式匹配的情况下比较枚举

】如何在没有模式匹配的情况下比较枚举【英文标题】:Howtocompareenumwithoutpatternmatching【发布时间】:2014-10-2323:10:23【问题描述】:我想在迭代器上应用filter,我想出了这个,它可以工作,但它非常冗长:.filter(|refmy_struct|matchmy_s... 查看详情

如何在保持两个字段原始顺序的情况下打乱行?

】如何在保持两个字段原始顺序的情况下打乱行?【英文标题】:Howtoshufflerowswithkeepingtwofieldsinoriginalorder?【发布时间】:2016-09-1219:53:33【问题描述】:我有四个字段的行数组:组、名称、键、值我需要“洗牌”这个数组,但结... 查看详情

Laravel Jetstream 比较两个表格以更改表格的背景

】LaravelJetstream比较两个表格以更改表格的背景【英文标题】:LaravelJetstreamComparingTwoTablestochangethebackgroundofthetable【发布时间】:2021-11-2302:27:17【问题描述】:我正在尝试制作一个用户有组织的表格,如果用户没有组织但该单元格... 查看详情

我如何在字典中附加一个数组(名称),并在 plist 中的同一数组下附加一个字典项?

】我如何在字典中附加一个数组(名称),并在plist中的同一数组下附加一个字典项?【英文标题】:Howdoiappendanarray(name)inadictionaryandadictionaryitemunderthatsamearrayinaplist?【发布时间】:2019-11-2119:42:37【问题描述】:我正在创建一个... 查看详情

如何比较两个json文件并在对象中返回不匹配的键和值(代码片段)

JSONFile1:["App_Name":"Test1","Instances":"2","Memory":"2G","Disk_Quota":"1G","App_Name":"Test2","Instances":"2","Memory":"2G","Disk_Quota":"1G","App_Name":"Test3","Instances":"1","Memory":"1G"," 查看详情

返回数组比较之间匹配的百分比

】返回数组比较之间匹配的百分比【英文标题】:ReturnPercentageofMatchesbetweenArrayComparison【发布时间】:2017-08-0116:50:34【问题描述】:我有一个包含大量数据的mongodb存储库,我需要在给定输入的情况下搜索和分类数据。我计划有一... 查看详情

如何在不更改原始数组的情况下更改函数中的数组? [复制]

】如何在不更改原始数组的情况下更改函数中的数组?[复制]【英文标题】:Howtochangeanarrayinafunctionwithoutchangingtheoriginalarray?[duplicate]【发布时间】:2021-12-0210:43:02【问题描述】:在C#和许多其他语言中,如果将数组传递给函数,... 查看详情

如何在给定容器 ID 的情况下查找 pod 名称

】如何在给定容器ID的情况下查找pod名称【英文标题】:HowtofindthepodnamegivenacontainerID【发布时间】:2018-07-0505:15:51【问题描述】:有没有办法找到给定Docker容器ID的pod名称?我可以用“kubectldescribepods”的另一种方式来做,但是我... 查看详情

如何将不同数组中的两个匹配对象合并为一个对象?

】如何将不同数组中的两个匹配对象合并为一个对象?【英文标题】:Howtomergetwomatchingobjectsfromdifferentarrayintooneobject?【发布时间】:2018-06-0800:09:40【问题描述】:我有一种情况,我从聚合中得到一个结果,我以这种格式获取数据... 查看详情

Ajax 将带有两个数组的 JSON 对象发送到一个 servlet 并在没有 jQuery 的情况下在 java servlet 中解析

】Ajax将带有两个数组的JSON对象发送到一个servlet并在没有jQuery的情况下在javaservlet中解析【英文标题】:AjaxsendJSONobjectwithtwoarraystoaservletandparsinginjavaservletwithoutjQuery【发布时间】:2021-09-2014:30:54【问题描述】:我必须向servlet发送... 查看详情