Введите, если последовательные числа в массиве разделены одинаковой величиной - PullRequest
0 голосов
/ 01 августа 2020

Я должен сделать это: выполнить функцию или метод, который получает массив из n чисел и определяет, все ли последовательные числа разделены одинаковой величиной, но я должен сделать это в JavaScript.

public static void main(String[] args) {
    int ar[]={194, 54, 23, 7, 3, 6, 8};
    if(array(ar)){
        System.out.println("Son consecutivos");
    }else{
        System.out.println("No son consecutivos");
    }
}

public static boolean array(int arr[]){
    Arrays.sort(arr);
    for(int i=0; i<arr.length; i++){
   if((arr[i] + 1) != arr[i+1]) {
        return false;
    }
    }
    return true;
}

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Попробуйте это, поскольку массив может быть ключевым словом, я изменил его на « aray »

const ar =[194, 54, 23, 7, 3, 6, 8];
// const ar =[1, 3, 5, 7];
if (aray(ar)) {
    console.log("Son consecutivos");
} else {
    console.log("No son consecutivos");
}

function aray(arr) {
    let result = false;
    if (!arr) {
        return result;
    }
    if (arr.length <= 2) {
        return result;
    }
    arr = arr.sort((a, b) => {
        return a - b;
    });
    let i = 0;
    let magnitude = Math.abs(arr[i] - arr[i + 1]);    
    for(let i = 1; i < arr.length - 1; i++) {
        if(Math.abs(arr[i] - arr[i + 1]) != magnitude) {
            
            return result;
        }
    }    
    result = true;
    return result;
}

Вывод:

No son consecutivos
0 голосов
/ 01 августа 2020
const areConsecutive = (array) => {
  const sorted = [...array].sort((a,b) => a-b);
  const magnitude = sorted[1] - sorted[0];
  for(let i=0; i<sorted.length - 1; i++) {
    if(sorted[i+1] - sorted[i] !== magnitude) {
      return false;
    }
  }
  return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...