Javascript 返回数字在数组中的位置
我有一系列的数字 设数=[4,7,2,0,9] 我希望根据数组中数字的大小映射数字数组,并返回其位置。我需要输出像这样 数字=[3,4,2,1,5]Javascript 返回数字在数组中的位置,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一系列的数字 设数=[4,7,2,0,9] 我希望根据数组中数字的大小映射数字数组,并返回其位置。我需要输出像这样 数字=[3,4,2,1,5] 谢谢你是说这是迄今为止最简单的答案吗 它将在数千个阵列上完成这项工作。如果较大,请使用查找映射 const arr=[4,7,2,0,9] 常量indicii=arr.slice(0).排序((a,b)=>a-b);//复制和排序 const res=arr.map(arrItem=>indicii.indexOf(arrItem)+1);//地
谢谢你是说这是迄今为止最简单的答案吗 它将在数千个阵列上完成这项工作。如果较大,请使用查找映射
const arr=[4,7,2,0,9]
常量indicii=arr.slice(0).排序((a,b)=>a-b);//复制和排序
const res=arr.map(arrItem=>indicii.indexOf(arrItem)+1);//地图二加一
console.log(res)
克隆数组,按升序排序,并将其映射到成对的[num,index+1]
。将成对数组转换为对象(位置
)
现在映射原始数组,并从positions
对象中获取每个数字的位置
const number=[4,7,2,0,9];
常量位置=Object.fromEntries(
[…数字]
.sort((a,b)=>a-b)
.map((num,index)=>[num,index+1])
);
const result=numbers.map(num=>positions[num]);
控制台日志(结果)代码>请访问,取查看和。做一些研究,搜索相关话题等;如果遇到问题,请发布您的尝试,并使用[]
代码段编辑器记录输入和预期输出。我保存了一个map和fromEntries以及一个好主意。补充。复制原始阵列时使用的是排列而不是切片。我仍然保存一张地图;)但是你的map动作是O(n^2)。通常的内存vs运行复杂性。对。我不得不读了几遍