Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Lấy phần mảng số theo phần trăm trong JavaScript

Cho mảng số: const numbers = [10,6200,20,20,350,900,26,78,888,10000,78,15000,200,1280,2000,450];

Viết hàm nhận mảng và số x trong [0,100] (phần trăm). Trả về mảng con n phần tử đầu cộng lại <= x% tổng mảng.

Ví dụ đơn giản: [12,10,6,8,4,2,8] tổng=50. x=25 => ngưỡng=12.5 => chỉ lấy [12] vì +10 sẽ vượt.

Code: reduce tính tổng, for loop xây mảng kết quả cho đến khi vượt ngưỡng.

Ví dụ

const numbers = [10,6200,20,20,350,900,26,78,888,10000,78,15000,200,1280,2000,450];

const findPercent = (arr, percent) => {
  const sum = arr.reduce((acc, val) => acc + val);
  const part = [];
  let curr = 0;
  for (let i = 0; i < arr.length; i++) {
    curr += arr[i];
    if (curr <= (sum * percent) / 100) {
      part.push(arr[i]);
    } else {
      break;
    }
  }
  return part;
};

console.log(findPercent(numbers, 35));
console.log(findPercent(numbers, 5));
console.log(findPercent(numbers, 65));
console.log(findPercent(numbers, 95));

Kết quả

Đầu ra trong console sẽ là:

[
  10, 6200, 20, 20,
  350, 900, 26, 78,
  888
]
[ 10 ]
[
  10, 6200, 20,
  20, 350, 900,
  26, 78, 888,
  10000, 78
]
[
  10, 6200, 20, 20,
  350, 900, 26, 78,
  888, 10000, 78, 15000,
  200, 1280
]