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

JavaScriptの配列で特別な種類の要素を見つける


3つの引数、つまり-

を受け取るJavaScript関数を作成する必要があります。
arr --> an array of integers
m --> a positive integer
n --> a positive integer

私たちの関数のタスクは、-

のような2つのそのような要素(それらをa1とa2と呼びましょう)が存在するかどうかを調べることです。
  • a1とa2の絶対差は最大でm

  • a1とa2のインデックスの絶対差は最大でn

以下はコードです-

const arr = [1, 2, 3, 1, 7, 8];
const findSpecialElements = (arr = [], m, n) => {
   const map = arr
   .map((el, ind) => ({ el, ind }))
   .sort((a, b) => a.el - b.el);
   let left = 0;
   let right = 1;
   while (right < map.length) {
      const diff = Math.abs(map[right].el - map[left].el);
      const range = Math.abs(map[right].ind - map[left].ind);
      if (diff <= n && range <= m){
         return true
      }else if (diff > n){
         left++;
      }else if (range > m){
         right++;
      };
      if (left === right){
         right++;
      };
   };
   return false;
};
console.log(findSpecialElements(arr, 3, 0));

出力

以下はコンソール出力です-

true

  1. 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>   &nbs

  2. JavaScriptでreduce()を使用して配列要素の積を検索する

    問題 配列arrを取り込むJavaScript関数を作成する必要があります。この関数は、配列のすべての要素の積を見つけて返す必要があります。 例 以下はコードです- const arr = [3, 1, 4, 1, 2, -2, -1]; const produceElements = (arr = []) => {    const res = arr.reduce((acc, val) => {       acc = acc * val;       return acc;   &n