Cách kiểm tra số nguyên dương trong javascript
Trong bài này freetuts chia sẻ cách kiểm tra số nguyên dương trong javascript, qua đó giúp bạn biết được một số có phải là số dương hay không.
Theo lý thuyết thì số nguyên dương là tập hợp những số chia hết cho 1 và lớn hơn 0. Tức là dãy số 1, 2, 3 ,4 ,5 ,6 ... chính là các số nguyên dương.
Bài này mình sẽ hướng dẫn bằng hai cách khác nhau. Cách thứ nhất là kết hợp giữa hàm isInteger và một kỹ thuật cơ bản. Cách thứ hai là sử dụng toán tử chia lấy dư.
1. Dùng hàm isInteger để kiểm tra số nguyên dương javascript
Để kiểm tra một số có phải là số nguyên không thì ta có hàm isInteger. Tuy nhiên, hàm này không thể nhận biết được đó là số nguyên dương hay số nguyên âm. Vì vậy ta phải sử dụng thêm một vài kỹ thuật nhỏ nữa để xác định.
Bài viết này được đăng tại [free tuts .net]
Sau đây là hàm kiểm tra số nguyên dương cơ bản nhất trong javascript.
function laSoNguyenDuong(value){ return (Number.isInteger(value) && value > 0); } console.log(laSoNguyenDuong(1)); // true console.log(laSoNguyenDuong(1.2)); // false console.log(laSoNguyenDuong(3)); // true console.log(laSoNguyenDuong(0)); // false
Bạn có thể chuyển hàm trên thành arrow function như sau:
let laSoNguyenDuong = (value) => { return (Number.isInteger(value) && value > 0); };
2. Dùng toán tử chia lấy dư để kiểm tra số nguyên dương javascript
Theo khái niệm mà mình đã trình bày ở trên, một số lớn hơn 0 và chia hết cho 1 thì đó chính là số nguyên dương. Áp dụng hai điều kiện này thì ta có cách tính như sau:
let laSoNguyenDuong = (value) => { return (value > 0 && value % 1 == 0); }; console.log(laSoNguyenDuong(1)); // true console.log(laSoNguyenDuong(1.2)); // false console.log(laSoNguyenDuong(3)); // true console.log(laSoNguyenDuong(0)); // false
Đối với cách này thì có một vấn đề nghiêm trọng, đó là nếu bạn truyền vào một chuỗi thì nó vẫn trả về true nếu chuỗi đó là số nguyên dương.
console.log(laSoNguyenDuong("1")); // true
Vì vậy, nếu bạn muốn trường hợp này sẽ trả về không phải số nguyên dương thì phải thêm một điều kiện nữa, đó là giá trị nhập vào phải là một số.
let laSoNguyenDuong = (value) => { return (typeof value == 'number' && value > 0 && value % 1 == 0); };
Trên là hai cách kiểm tra số nguyên dương trong javascript.