如何使用Javascript根据另一个数组的相应元素的属性对数组进行排序?

时间:2019-06-27 18:06:22

标签: javascript arrays

说我有两个数组。一个是:

A = [a, b, c, d]

另一个是

B = [w, x, y, z]

A 中的每个元素对应于 B

中的相应元素
(i.e. a -> w, b -> x, c -> y, d -> z)

现在,我要按 B

元素的属性(例如值)的升序对数组 A 进行排序
(eg. w.value = 3, x.value = 2, y.value = 1, z.value = 4)

因此,我想要的输出是:

  

[c,b,a,d]

如何使用Javascript执行此操作?任何帮助将不胜感激。我被这个问题困扰了很长时间。

2 个答案:

答案 0 :(得分:2)

您可以获取索引,将其与newPageTemplate=$(./replace-env-params.sh $CONFLUENCE_PAGE_TEMPLATE) 的值进行排序,并通过获取已排序的索引来映射b的值。

a

答案 1 :(得分:1)

要获得预期的结果,请使用以下使用indexOf进行排序的选项

  1. 排序数组- a 使用indexOf
  2. b 数组值进行排序

var a = ["a", "b", "c", "d"]
var b = [3, 2, 1, 4]

console.log(a.sort((x,y) => b[a.indexOf(x)] - b[a.indexOf(y)]))