有没有办法根据事物在列表中的位置为事物赋值?

Kev*_*ndy 1 javascript arrays sorting if-statement

我有六个字母[a,b,c,d,e,f]和两个用户[bob,bender]。他们都有代表他们的字母的不同排列,想想个性得分。鲍勃是[e,f,c,b,a,d],本德是[b,a,d,f,e,c]

我也有一张图表可以把这些放在上面。按顺序,每个字母在图表上都有自己的条形,刻度线最多为 6。

根据字母出现在列表中的位置,它会分配一个数字值。第一个字母的值为 6,第二个字母的值为 5,依此类推。

最终数组需要按 abc 顺序排列,但每个字母都有正确的值。示例:Bob 将以[2,3,4,1,6,5].

你会怎么做?

我能想到的唯一方法是大量的 if 语句,我想看看是否有更好的方法。

我还是 Javascript 的新手。

You*_*ame 5

你可以使用Array.map()Array.indexOf()

const bob = ['e','f','c','b','a','d'];
const bender = ['b','a','d','f','e','c']
const letters = ['a','b','c','d','e','f']
const bobFinal = letters.map(e => 
  6 - bob.indexOf(e)
);
const benderFinal = letters.map(e =>
  6 - bender.indexOf(e)
);
console.log(bobFinal);
console.log(benderFinal);
Run Code Online (Sandbox Code Playgroud)

这是一个可以使用的函数:

const final = arr =>
  letters.map(e =>
    6 - arr.indexOf(e)
  )
);
Run Code Online (Sandbox Code Playgroud)