首页 > 解决方案 > How to find third values comparing two values in javascript?

问题描述

Here I have two arrays array1 and array2 I want to find ids from array1 which array1's names matched with array2 values how to find ids in javascript ?

array1:

[ {id: 1, name: "Hindi"}
  {id: 2, name: "English"}
  {id: 3, name: "French"}
  {id: 4, name: "Russian"}
  {id: 5, name: "Urdu"}
  {id: 6, name: "Japanese"}
]

array2:

["Hindi", "Russian", "Urdu"]

I tried this code

console.log(array1.find(x => x.name === array2).id;

标签: javascript

解决方案


You can use filter() to get objects whose names are in the array.Then use map() to convert array of values to array of ids.

In your code you are comparing the string with array x.name === array2. You should use includes()

let arr = [ {id: 1, name: "Hindi"}, {id: 2, name: "English"}, {id: 3, name: "French"}, {id: 4, name: "Russian"}, {id: 5, name: "Urdu"}, {id: 6, name: "Japanese"} ]
let lang = ["Hindi", "Russian", "Urdu"];

let res = arr.filter(x => lang.includes(x.name)).map(x => x.id);
console.log(res)


推荐阅读