[CodeKata]2つ抽出して追加


リンク

  • https://programmers.co.kr/learn/courses/30/lessons/68644
  • リファレンス

  • https://stackoverflow.com/questions/1960473/get-all-unique-values-in-a-javascript-array-remove-duplicates
  • https://stackoverflow.com/questions/9229645/remove-duplicate-values-from-js-array
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
  • 私の答え

    function solution(numbers) {
      var answer = [];
    
      for (let i = 0; i < numbers.length; i++) {
        for (let j = 0; j < numbers.length; j++) {
          if (i !== j) {
            answer.push(numbers[i] + numbers[j]);
          }
        }
      }
    
      //   result 변수에 filter 메서드를 사용해서 answer 배열의 item의 index와 index가 같은 값만 출력한 새로운 배열을 만듦.
      const result = answer.filter((item, index, self) => {
        return self.indexOf(item) === index;
      });
    
      // result 오름차순으로 정렬
      result.sort((a, b) => a - b);
      return result;
    }
    answer配列の重複値を除去する方法を考慮すると、filterメソッドを使用して重複値のない配列を作成できます.

    より良いソリューション

    function solution(numbers) {
      var answer = [];
    
      // 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열로 만들면
      for (let i = 0; i < numbers.length; i++) {
        for (let j = 0; j < numbers.length; j++) {
          if (i !== j) {
            answer.push(numbers[i] + numbers[j]);
          }
        }
      }
    
      // Set을 사용해서 유일한 value만 저장한다.
      const result = [...new Set(answer)];
    
      // result 오름차순으로 정렬
      result.sort((a, b) => a - b);
      return result;
    }
    より良い方法は、SetSetを使用してオブジェクトであり、元の値とオブジェクト参照は、資料タイプにかかわらず一意の値を格納することができます.Spread OperatorSetを使用すると、私の解答よりもテスト例でより速く合格することがわかります.