Computer >> Máy Tính >  >> Lập trình >> Javascript

Đếm các số nhỏ hơn sau các số tương ứng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng Numbers làm đối số đầu tiên và duy nhất.

Hàm của chúng ta nên chuẩn bị một mảng mới dựa trên mảng đầu vào. Và mỗi phần tử tương ứng của mảng mới này phải là số phần tử nhỏ hơn phần tử tương ứng trong mảng ban đầu.

Ví dụ:nếu đầu vào của hàm là -

const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];

Sau đó, đầu ra phải là -

const output = [2, 4, 0, 1, 2, 1, 0, 0, 0];

Giải thích đầu ra:

Bởi vì số nhỏ hơn 4 ở bên phải của nó là 2 (1 và 3), cho 7 là 4 (1, 4, 5, 3) của nó, v.v.

Ví dụ

Mã cho điều này sẽ là -

const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];
const countSmaller = (array = [], num) => array.reduce((acc, val) => {
   if(val < num){
      acc++;
   };
   return acc;
}, 0);
const smallerArray = (arr = []) => {
   const res = [];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      res[i] = countSmaller(arr.slice(i, arr.length), el);
   };
   return res;
};
console.log(smallerArray(arr));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[ 2, 4, 0, 1, 2, 1, 0, 0, 0 ]