Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回数字在数组中的位置_Javascript_Arrays_Sorting - Fatal编程技术网

Javascript 返回数字在数组中的位置

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);//地

我有一系列的数字

设数=[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);//地图二加一

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运行复杂性。对。我不得不读了几遍