Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

操作を使用してJavaScriptで目的の結果を生成する


問題

最初の引数としてarr、2番目の引数としてtargetという正確に4つの数値の配列を受け取るJavaScript関数を作成する必要があります。

私たちの関数は、配列arrの数値が*、/、+、-、(、)を介して操作され、ターゲットと等しい値を取得できるかどうかを判断する必要があります。

たとえば、関数への入力が

入力

const arr = [5, 3, 2, 1];
const target = 4;

出力

const output = true;

出力の説明

このように4つ達成できるからです-

(5 - 1) * (3 - 2) = 4

以下はコードです-

const arr = [5, 3, 2, 1];
const target = 4;
const canOperate = (arr = [], target = 1) => {
   const isValid = x => Math.abs(x - target) < 0.0000001
   const helper = (arr = []) => {
      if (arr.length === 1) {
         return isValid(arr[0])
      }
      let valid = false
      for (let i = 0; i < arr.length; i++) {
         for (let j = i + 1; j < arr.length; j++) {
            const nextArr = arr.filter((x, index) => index !== i && index !== j)
            valid = valid || helper([...nextArr, arr[i] + arr[j]])
            || helper([...nextArr, arr[i] - arr[j]])
            || helper([...nextArr, arr[j] - arr[i]])
            || helper([...nextArr, arr[i] * arr[j]])
            || helper([...nextArr, arr[i] / arr[j]])
            || helper([...nextArr, arr[j] / arr[i]])
         }
      }
      return valid
   }
   return helper(arr)
}
console.log(canOperate(arr, target));

出力

true

  1. Firebugを使用したJavaScriptのデバッグ

    デバッグは、欠陥を取り除く体系的な方法です。それはすべて、テストケースの実行から始まります。テストケースが実行されるたびに、実際の結果が期待される結果と比較されます。実際の結果と期待される結果の間に対応がない場合は、根本原因分析が行われ、結果が期待される線に沿っていることを確認するために回帰テストなどの追加のテストが実行されます。 静的なWebページを設計するために、HTMLが広く使用されています。動的なWebベースのアプリケーションであるJavaScriptを開発するには、Webのスクリプト言語を使用する必要があります。コードをバグのないものにするために、プログラマーは多くのデバッグ手法に

  2. JavaScriptのインポートで「{}」を使用しますか?

    以下は、javaScriptインポートで{}を使用するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>