[プログラマー]完走できなかった選手


🤔 質問する


多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.

¥2,000円制限


マラソンに出場する選手は1人以上10万人以下だ.
完了長さは参加者の長さ1より小さい.
参加者の名前には、少なくとも1つまたは20個の小文字が含まれています.
参加者は同名であってもよい.

💡 に近づく


1人の選手を除いて他の選手がすべて試合を終えたので、participantcompletionをそれぞれ並べ替え、participantを基準に2つの並びを順番に比較し、2つの値が異なるときにその値を返すことにした.

🧑🏻‍💻 コード#コード#

function solution(participant, completion) {
  participant.sort();
  completion.sort();
  const diff = participant.find((p, i) => p !== completion[i]);
  return diff;
}

solution(
  ['marina', 'josipa', 'nikola', 'vinko', 'filipa'],
  ['josipa', 'filipa', 'marina', 'nikola'],
); 
// 'vinko'

📝 リファレンス


MDN - Array.prototype.sort()
MDN - Array.prototype.find() find()メソッドは、与えられた判別関数を満たす最初の要素の値を返す.
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found); // 12