Giả sử chúng ta có một mảng các số nguyên (dương, âm và 0) như thế này -
const arr = [23, -1, 0, 11, 18];
Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng như vậy làm đối số đầu tiên và duy nhất. Sau đó, hàm sẽ tìm tỷ lệ phân số cho cả ba nhóm khác nhau, cụ thể là dương, âm và không.
Ví dụ -
Đối với mảng trên, độ dài của nó là 5, đầu ra cho mảng này phải là -
const output = [.2, .2, .6];
Mảng đầu ra sẽ luôn chứa 3 số, đại diện cho tỷ lệ phân số của số nguyên âm, số 0 và số nguyên dương tương ứng. Một cách đơn giản để xác minh câu trả lời của chúng tôi là thêm ba giá trị này và kiểm tra xem chúng có gần bằng 1 hay không, nếu có, rất có thể chúng tôi đã giải quyết vấn đề một cách chính xác.
Ví dụ
Mã cho điều này sẽ là -
const arr = [23, -1, 0, 11, 18]; const findRatio = (arr = []) => { const { length } = arr; const res = [0, 0, 0]; for(let i = 0; i < arr.length; i++){ const el = arr[i]; const key = el / Math.abs(el || 1); res[key + 1]++; }; return res.map(el => el / length); }; console.log(findRatio(arr));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
[0.2, 0.2, 0.6]