Javascript 如何基于关键字名称中的唯一相似性组合两个对象?

Javascript 如何基于关键字名称中的唯一相似性组合两个对象?,javascript,Javascript,我有两个对象,每个对象在一个组件中有四个键。对象的一个键包含字符值,另一个键包含整数。我想根据数值对象的键值降序在JSX标记中显示它们 困难的部分是当我想要在数字键旁边有相应的字符对象键时。我的问题是,两个对象的关键点都以正确的顺序开始索引,当我对数字对象进行排序时,我不知道如何以相同的方式洗牌字符,以便它们保持同步 这两个对象是从构造函数中的状态中提取的,每个不同的点状态都等于一个数字。每个玩家状态等于一个名字,我的意图是按点数降序显示“playerx:pointsx points” all.

我有两个对象,每个对象在一个组件中有四个键。对象的一个键包含字符值,另一个键包含整数。我想根据数值对象的键值降序在JSX标记中显示它们

困难的部分是当我想要在数字键旁边有相应的字符对象键时。我的问题是,两个对象的关键点都以正确的顺序开始索引,当我对数字对象进行排序时,我不知道如何以相同的方式洗牌字符,以便它们保持同步

这两个对象是从构造函数中的状态中提取的,每个不同的点状态都等于一个数字。每个玩家状态等于一个名字,我的意图是按点数降序显示“playerx:pointsx points”

all.points = {{this.state.points1},{this.state.points2},{this.state.points3},{this.state.points4}}

all.players = {{this.state.player1},{this.state.player2},{this.state.player3},{this.state.player4}}
所需输出示例(插入值):

let:player1:罗杰
播放者2:史蒂夫
播放者3:马克
播放者4:帕梅拉
让我们看:第1点:第4点
要点2:6
要点3:2
要点4:5
史蒂夫:6分
帕梅拉:5分
罗杰:4分
分数:2分

简而言之,每个名称和点数都是单独的状态,我希望
this.state.playerx
链接到
this.state.pointsx
,同时按点数的降序排列。

您可以创建一个包含玩家名称和点数的对象的数组,然后根据玩家的点数对该数组进行排序,以下是一个例子:

常量名称={
玩家1:‘罗杰’,
玩家2:'史蒂夫',
玩家3:‘马克’,
玩家4:‘帕梅拉’
}
常数点={
要点1:4,
要点2:6,
要点3:2,
要点4:5
}
const players=Object.entries(name).reduce((a,[key,value])=>{
常数nr=键。替换(/\D/g');
a、 推({
名称:value,
点数:点数[`points${nr}`]
});
返回a;
}, []);
排序({points:a},{points:b})=>b-a);

控制台日志(播放器)您可能希望有一个对象数组,而不是一个对象对象数组。下面是一个react示例,它有一个签名为{name:string,points:number'的对象数组


我在这里只看到语法错误;或者你使用了错误的标记吗?这是哪种语言?JSX,在我的示例中,我使用了let这个词,但在创建变量的意义上并不是这个词的意思,也许可以选择一些不太容易混淆的东西。我还忘了将div标记中的内容用小括号括起来。我并没有编写任何代码只是排序发布所需的输出。
let: player1: Roger
     player2: Steve
     player3: Mark
     player4: Pamela

and let: points1: 4
         points2: 6
         points3: 2
         points4: 5
<div>
Steve: 6 points
Pamela: 5 points
Roger: 4 points
Mark: 2 points
</div>