Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中找到比较两个值的第三个值?_Javascript - Fatal编程技术网

如何在javascript中找到比较两个值的第三个值?

如何在javascript中找到比较两个值的第三个值?,javascript,Javascript,这里我有两个数组array1和array2,我想从array1中查找ID,哪个array1的名称与array2的值匹配?如何在javascript中查找ID 阵列1: [ {id: 1, name: "Hindi"} {id: 2, name: "English"} {id: 3, name: "French"} {id: 4, name: "Russian"} {id: 5, name: "Urdu"} {id: 6, name: "Japanese"} ] 阵列2: [

这里我有两个数组array1和array2,我想从array1中查找ID,哪个array1的名称与array2的值匹配?如何在javascript中查找ID

阵列1:

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

["Hindi", "Russian", "Urdu"]
我试过这个密码

console.log(array1.find(x => x.name === array2).id;
可以使用获取名称在数组中的对象。然后使用将值数组转换为ID数组

在您的代码中,您正在将字符串与array
x进行比较。name===array2
。您应该使用
includes()

let arr=[{id:1,姓名:“印地语”},{id:2,姓名:“英语”},{id:3,姓名:“法语”},{id:4,姓名:“俄语”},{id:5,姓名:“乌尔都语”},{id:6,姓名:“日语”}]
let lang=[“印地语”、“俄语”、“乌尔都语];
让res=arr.filter(x=>lang.includes(x.name)).map(x=>x.id);

console.log(res)
您应该结合使用
过滤
方法以及
映射
和解构

让arr1=[{id:1,姓名:“印地语”},{id:2,姓名:“英语”},{id:3,姓名:“法语”},{id:4,姓名:“俄语”},{id:5,姓名:“乌尔都语”},{id:6,姓名:“日语”},arr2=[“印地语”、“俄语”、“乌尔都语”];
log(arr1.filter(({name})=>arr2.includes(name)).map(({id})=>id))请尝试以下操作:

var a=[{
id:1,
姓名:“印地语”
}, {
id:2,
姓名:“英语”
}, {
id:3,
姓名:“法语”
}, {
id:4,
姓名:“俄语”
}, {
id:5,
名称:“乌尔都语”
}, {
id:6,
姓名:“日语”
}]
变量b=[“印地语”、“俄语”、“乌尔都语];
var c=a.filter(函数(i){
返回b.indexOf(i.name)>-1;
});
console.log(c);//带有筛选值的新数组
这也适用:)

var a1=[{
id:1,
姓名:“印地语”
}, {
id:2,
姓名:“英语”
}, {
id:3,
姓名:“法语”
}, {
id:4,
姓名:“俄语”
}, {
id:5,
名称:“乌尔都语”
}, {
id:6,
姓名:“日语”
}]
变量a2=[“印地语”、“俄语”、“乌尔都语];
变量过滤器=a1。过滤器(功能(i){
返回a2.indexOf(i.name)>-1;
}).map(功能(obj){
返回obj.id;
});;

控制台日志(过滤器)您希望从例如
“印地语”==[“印地语”、“俄语”、“乌尔都语”]
中得到什么?研究过滤和映射数组。你希望一个id值数组作为输出吗?@jornsharpe没有“印地语”==“印地语”,“俄语”==“俄语”,“乌尔都语”==“乌尔都语”,并且希望数组中的id像这样[1,4,5],这不是你写的。尝试把它分解成更小的步骤,例如如何检查给定值是否在(不等于)数组中。如果DDR对你有用,那么它可能会接受这个答案。我不知道为什么我得到了否决票,即使代码是根据OP的需要工作的。