Javascript 如何比较两个数组并从第一个数组中获取第一个匹配对象?
Javascript 如何比较两个数组并从第一个数组中获取第一个匹配对象?,javascript,arrays,Javascript,Arrays,var arr1=[‘五’、‘四’、‘满’、‘直’、‘三’、‘二’、‘一’、‘半身像’] var arr2=[{player1-box:“一”},{player2-box:“一”},{player3-box:“四”},{player1-box:“三”},{player3-box:“两”},{player1-box:“五”},{player2-box:“一”},{player3-box:“一”}您可以使用迭代arr1并在arr2中找到对象时退出循环 虽然对象具有不同的关键点,但需要获取用于检查的值
var arr1=[‘五’、‘四’、‘满’、‘直’、‘三’、‘二’、‘一’、‘半身像’]
var arr2=[{player1-box:“一”},{player2-box:“一”},{player3-box:“四”},{player1-box:“三”},{player3-box:“两”},{player1-box:“五”},{player2-box:“一”},{player3-box:“一”}
您可以使用迭代arr1
并在arr2
中找到对象时退出循环
虽然对象具有不同的关键点,但需要获取用于检查的值
var arr1=[“五”,“四”,“满”,“直”,“三”,“二”,“一”,“半身像],
arr2=[{“玩家1盒”:“一”},{“玩家2盒”:“一”},{“玩家3盒”:“四”},{“玩家1盒”:“三”},{“玩家2盒”:“三”},{“玩家3盒”:“两”},{“玩家1盒”:“五”},{“玩家2盒”:“一”},{“玩家3盒”:“一”},
结果;
arr1.some(v=>result=arr2.find(o=>Object.values(o).includes(v));
控制台日志(结果)
您可以使用迭代arr1
,如果在arr2
中找到对象,则可以退出循环
虽然对象具有不同的关键点,但需要获取用于检查的值
var arr1=[“五”,“四”,“满”,“直”,“三”,“二”,“一”,“半身像],
arr2=[{“玩家1盒”:“一”},{“玩家2盒”:“一”},{“玩家3盒”:“四”},{“玩家1盒”:“三”},{“玩家2盒”:“三”},{“玩家3盒”:“两”},{“玩家1盒”:“五”},{“玩家2盒”:“一”},{“玩家3盒”:“一”},
结果;
arr1.some(v=>result=arr2.find(o=>Object.values(o).includes(v));
控制台日志(结果)代码>除了在arr1上迭代之外,我看不到当前数据设置的任何方法。如果未找到,则返回在未定义的的arr1
中找到的第一个
var arr1=[‘五’、‘四’、‘满’、‘直’、‘三’、‘二’、‘一’、‘半身像’]
var arr2=[{'player1-box':“一”},{'player2-box':“一”},{'player3-box':“四”},{'player1-box':“三”},{'player2-box':“三”:“二”},{'player1-box':“五”},{'player2-box':“一”},{'player3-box':“一”]
函数findFirst(键、播放器){
用于(钥匙中的钥匙){
让player=players.find(player=>Object.values(player.includes(key))
如果(玩家)返回玩家
}
}
let first=findFirst(arr1,arr2)
log(第一个)
除了在arr1上迭代之外,我看不到当前数据设置的任何方法。如果未找到,则返回在未定义的的arr1
中找到的第一个
var arr1=[‘五’、‘四’、‘满’、‘直’、‘三’、‘二’、‘一’、‘半身像’]
var arr2=[{'player1-box':“一”},{'player2-box':“一”},{'player3-box':“四”},{'player1-box':“三”},{'player2-box':“三”:“二”},{'player1-box':“五”},{'player2-box':“一”},{'player3-box':“一”]
函数findFirst(键、播放器){
用于(钥匙中的钥匙){
让player=players.find(player=>Object.values(player.includes(key))
如果(玩家)返回玩家
}
}
let first=findFirst(arr1,arr2)
console.log(第一个)
使用for循环或forEach()
。为什么arr2
?为什么不仅仅是{player1-box:“value”,player2-box:“value”}
或[{name:“player1”,value:“value”},/*…*/]
?对象键中不能有破折号。使用for循环或forEach()
。为什么arr2
?为什么不干脆{player1-box:“value”,player2-box:“value”}
或[{name:“player1”,value:“value”},/*…*/]
?对象键中不能有破折号。谢谢,您可以不使用箭头操作符发送它吗?谢谢,您可以不使用箭头操作符发送它吗?