在Javascript中从二维数组返回一个字符串

时间:2016-05-18 20:44:34

标签: javascript arrays multidimensional-array

我有一个二维数组:

var beatlesComposers = [
  ['George', 22 ],
  ['John', 71 ],
  ['Paul', 71 ],
  ['Ringo', 2 ]
];

第一个元素是作曲家的名字,第二个元素代表该作曲家写的歌曲数量。

如何使用最后写入的最大歌曲数量返回作曲家的名字(在本例中'保罗'是71)?

2 个答案:

答案 0 :(得分:2)

您可以使用reduce查看每个数组的第二个元素并找到最高元素。在比较中使用>=而不是>会使得最新元素在关联时获胜。

var beatlesComposers = [['George', 22 ],['John', 71 ],['Paul', 71 ],['Ringo', 2 ]];

var mostWritten = beatlesComposers.reduce(function(prev, curr){
  return curr[1] >= prev[1] ? curr : prev;
});

答案 1 :(得分:0)

你总是可以做一个基本的数组排序:

var beatlesComposers = [['George', 22 ],['John', 71 ],['Paul', 71 ],['Ringo', 2 ]];

beatlesComposers.sort(function(artist1,artist2){
  return artist2[1]-artist1[1]
});

beatlesComposers[0]; //This is now ['John', 71]

现在,#34; beatlesComposers"中的第一个元素将成为歌曲数量最多的艺术家。