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”);作品