Javascript 如何比较2个数组,从数组中的匹配项返回键以重写第一个数组中的键

Javascript 如何比较2个数组,从数组中的匹配项返回键以重写第一个数组中的键,javascript,arrays,Javascript,Arrays,我有两个阵列: const firstArray = ["A", "B", "1", "2", "F", "89", "8", "K"]; const inputArray = ["1", "B", "F", "A", "89"]; 和 for (const index of firstArray.keys()) { console.log(index); } for (const index of inputArray .keys()) { console.log(index);

我有两个阵列:

const firstArray = ["A", "B", "1", "2", "F", "89", "8", "K"];
const inputArray = ["1", "B", "F", "A", "89"];

for (const index of firstArray.keys()) {
  console.log(index);
}
for (const index of inputArray .keys()) {
  console.log(index);
}
我从数组中获取密钥:0、1、2、3、4、5、6、7、8

for (const index of firstArray.keys()) {
  console.log(index);
}
for (const index of inputArray .keys()) {
  console.log(index);
}
我从输入数组中获取键:0、1、2、3、4

我使用它来比较和检查是否所有元素都在firstArray中:

const foundedArray = inputArray.filter(element => firstArray.includes(element));
到目前为止一切正常,但现在我需要将firstArray中的键放入我的inputArray中,使它们适合firstArray中相同的匹配值

我需要将密钥从firstArray获取到我的输入数组中:

Value ["1", "B", "F", "A", "89"];
Keys    2,   1,   4,   0,   5
我在这里结巴,我怎么能写这个

游乐场:

谢谢大家!

  inputArray.map(it => firstArray.indexOf(it))

使用
indexOf
可以获得数组中某个值的位置。

要获得重新排序的数组,可以通过检查剩余计数并减少计数来计算
inputArray
的值,并过滤
firstArray

const
firstArray=[“A”、“B”、“1”、“2”、“F”、“89”、“8”、“K”],
输入阵列=[“1”、“B”、“F”、“A”、“89”],
计数=输入阵列。减少((计数,值)=>{
计数[值]=(计数[值]| | 0)+1;
返回计数;
}, {}),
result=firstArray.filter(value=>count[value]&&count[value]--);

控制台日志(结果)您只是想获取索引,还是实际尝试根据firstArray对inputArray进行排序?(还有,如果元素出现多次会发生什么情况?)嗨,Jonas,是的,我尝试根据firstArray键对输入数组重新排序@briosheje如果一个元素出现一次以上,它应该返回第一个数组中带有标记的元素进行排序。@JosephineDone所以它应该返回一个数组,对吗?你说的“顺序”是什么意思?请添加想要的结果。const sortHelper=(a,b)=>(a>b?-1:b>a?1:0);const getKeys=inputArray.map(it=>firstArray.indexOf(it)).sort(sortHelper);log(“这是它们在第一个数组中的键:+getKeys”);作品