javascript - 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;
解决方案
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)
推荐阅读
- javascript - 无法对未安装的组件执行 React 状态更新
- linux - msync() 是否提供获取/释放语义?
- node.js - Nodemailer 可能会阻止 Jest 退出
- python - 在 R 中运行 Keras 顺序模型
- laravel - Laravel + MongoDB 雄辩的关系不起作用
- c - 被 printf 函数中的制表符 (\t) 混淆
- java - 在创建 Maven 项目时,在 Eclipse Luna 中构建工作区遇到问题
- redis - 如何限制排序集的返回值
- python - 如何通过 pytest 正确测试 python 函数
- aframe - Aframe.js, shadow="receive: false", 第二个uvset不显示遮挡贴图