如何匹配第一个数组的数据和 return 相同数据

how do I match the data and return same data of first array

我有两个数组

arr1 =[{name:'Net Banking', id:'NetBanking'},{name:'Debit Card', id:'DebitCard'},{name:'Credit Card', id:'CreditCard'}]

arr2=['DebitCard','NetBanking']

并且我想要从 arr1

开始的预期结果
arr1=[{name:'Debit Card', id:'DebitCard'}, {name:'Net Banking', id:'NetBanking'}]

目前我正在使用-

arr1.filter(data=>arr2.includes(data.id))

我得到 return 作为

arr1 =[{name:'Net Banking', id:'NetBanking'},{name:'Debit Card', id:'DebitCard'}]

表示将 arr2 的元素与 arr1 匹配,return 表示将 arr1 与 arr2 的相同顺序匹配

或者如何根据 arr1 的 arr2 更改索引

您可以使用 Array.map() along with Array.find() 获得所需的输入。

工作演示:

const arr1 =[{name:'Net Banking', id:'NetBanking'},{name:'Debit Card', id:'DebitCard'},{name:'Credit Card', id:'CreditCard'}];

const arr2=['DebitCard','NetBanking'];

const resArray = arr2.map((item) => arr1.find((obj) => obj.id === item));

console.log(resArray);

您可以遍历 arr2 并为每个项目在数组 arr1

中找到具有相同 id 的相关对象

你可以信赖

  1. Array.prototype.find
  2. Array.prototype.reduce

let arr1 =[{name:'Net Banking', id:'NetBanking'},{name:'Debit Card', id:'DebitCard'},{name:'Credit Card', id:'CreditCard'}];

let arr2=['DebitCard','NetBanking'];

const result = arr2.reduce((accumulator, current) => {
   /*
   * For the current item of the loop search for item with
   * object.id === current
   */
   return accumulator.concat(arr1.find(item => item.id === current));
},[]);

console.log(result);