繁体   English   中英

javascript中的反向查找数组

[英]Reverse lookup array in javascript

您如何以有效的方式创建反向查找数组?

例如[5, 3, 1, 4, 2] => [3, 5, 2, 4, 1]

显然,一个简单的方法是:

const input = [5, 3, 1, 4, 2];
const output = [];
for (i = 0; i < input.length; i++) {
    output[input[i] - 1] = i + 1;
}

你的方法是 O(n):我不认为可以打败

您确实必须遍历输入中的每个元素(读取它)和输出的每个元素(写入它):无法摆脱!

我唯一建议稍微加快速度的是预先调整输出数组的大小。

 const input = [5, 3, 1, 4, 2]; const output = new Array(input.length); input.forEach( (value, i) => output[value - 1] = i + 1 ) console.log(output)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM