Chương trình JavaScript để đảo ngược một số

Đây là hướng dẫn về Đảo ngược trong JavaScript. Ở đây chúng tôi thảo luận về logic để tìm ra Đảo ngược trong JavaScript và Đảo ngược một số bằng cách sử dụng vòng lặp While. Bạn cũng có thể xem bài viết sau để tìm hiểu thêm –

Mục đích của chúng tôi là viết một hàm JavaScript nhận vào một số và trả về số đảo ngược của nó

Ví dụ: đảo ngược của 678 −

876

Đây là mã để đảo ngược một số trong JavaScript –

Thí dụ

const num = 124323;
const reverse = (num) => parseInt(String(num)
.split("")
.reverse()
.join(""), 10);
console.log(reverse(num));

đầu ra

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

323421

Giải trình

  • Giả sử num = 123
  • Chúng tôi chuyển đổi số thành chuỗi → num trở thành '123'
  • Chúng tôi tách '123' → nó trở thành ['1', '2', '3']
  • Chúng ta đảo ngược mảng → nó trở thành [‘3’, ‘2’, ‘1’]
  • Chúng tôi tham gia mảng để tạo thành một chuỗi → nó trở thành '321'
  • Cuối cùng, chúng tôi phân tích chuỗi thành Int và trả về → 321

Chương trình JavaScript để đảo ngược một số


Chương trình JavaScript để đảo ngược một số

Gần đây tôi đã được hỏi cách giải quyết vấn đề này và đây là giải pháp ban đầu của tôi


đầu ra mong muốn. 123 => 321, -15 => -51, 500 => 5

function revInt(num) {
// Use toString() to convert it into a String
// Use the split() method to return a new array: -123 => ['-', '1','2','3']
// Use the reverse() method to reverse the new created array: ['-', '1','2','3'] => ['3','2','1','-'];
// Use the join() method to join all elements of the array into a string
  let val = num.toString().split('').reverse().join('');
    // If the entered number was negative, then that '-' would be the last character in
   //  our newly created String, but we don't want that, instead what we want is
  //  for it to be the first one. So, this was the solution from the top of my head.

// The endsWith() method determines whether a string ends with the characters of a specified string
  if (val.endsWith('-')) {
    val = '-' + val;
      return parseInt(val);
  }
      return parseInt(val);
}

console.log(revInt(-123));


Một cách giải quyết tốt hơn

Sau khi tôi suy nghĩ thêm, tôi đã nghĩ ra như sau

   // Here we're converting the result of the same functions used in the above example to 
// an Integer and multiplying it by the value returned from the Math.sign() function.

// NOTE: The Math.sign() function returns either a positive or negative +/- 1, 
// indicating the sign of a number passed into the argument.   

function reverseInt(n) {
      return parseInt(n.toString().split('').reverse().join('')) * Math.sign(n)
}

console.log(reverseInt(-123));

GHI CHÚ. Giải pháp thứ 2 đơn giản hơn nhiều, IMHO

Đảo ngược một chuỗi hoặc đảo ngược một số là một trong những câu hỏi phổ biến trong các cuộc phỏng vấn lập trình. Chúng ta hãy xem làm thế nào điều này được thực hiện

Quy định/Hạn chế

  • Số âm nên giữ nguyên số âm

Ví dụ. -12345 trở thành -54321

  • Mọi số 0 đứng đầu phải được loại bỏ

Ví dụ.

function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
0 trở thành
function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
1 chứ không phải
function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
2

  • Hàm có thể chấp nhận số float hoặc số nguyên

Ví dụ.

function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
3 trở thành
function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
4

  • Hàm sẽ trả về số nguyên là số nguyên

Ví dụ.

function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
5 trở thành
function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
6 chứ không phải
function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
7

Giải bằng hàm mũi tên

const reversedNum = num => parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num)

Giải quyết với một chức năng thông thường

function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}

Sự khác biệt giữa chức năng Mũi tên & Chức năng thông thường

Trong ví dụ này, điểm khác biệt duy nhất giữa Hàm mũi tên và Hàm thông thường là hàm Thông thường cần cung cấp một giá trị

function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
8 rõ ràng

Các hàm mũi tên có một giá trị ngầm định

function reversedNum(num) {
  return (
    parseFloat(
      num
        .toString()
        .split('')
        .reverse()
        .join('')
    ) * Math.sign(num)
  )                 
}
8 — nếu chúng có thể được viết trong một dòng mà không cần dấu ngoặc ______17_______0

Hãy phá vỡ các bước xuống

  • Chuyển đổi số thành một chuỗi

let num = -5432100
num.toString()

// num = '-5432100'
1 chuyển đổi số đã cho thành Chuỗi. Chúng tôi làm điều này để chúng tôi có thể sử dụng chức năng
let num = -5432100
num.toString()

// num = '-5432100'
2 trên đó tiếp theo

let num = -5432100
num.toString()

// num = '-5432100'
  • Tách chuỗi thành một mảng

let num = -5432100
num.toString()

// num = '-5432100'
3 chuyển Chuỗi thành Mảng ký tự. Chúng tôi làm điều này để có thể sử dụng chức năng đảo ngược Mảng (không hoạt động trên Chuỗi)

// num = '-5432100'

num.split('')

// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
  • Đảo ngược mảng

let num = -5432100
num.toString()

// num = '-5432100'
4 đảo ngược thứ tự của các phần tử trong mảng

// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]

num.reverse()

// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
  • Tham gia nó trở lại thành một chuỗi

let num = -5432100
num.toString()

// num = '-5432100'
5 tập hợp lại các ký tự bị đảo ngược thành Chuỗi

// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]

num.join('')

// num = '0012345-'
  • Phân tích giá trị đầu vào thành một số dấu phẩy động

let num = -5432100
num.toString()

// num = '-5432100'
6 chuyển đổi
let num = -5432100
num.toString()

// num = '-5432100'
7 thành float từ Chuỗi

// num = '0012345-'

parseFloat(num)

// num = 12345

Ghi chú.

let num = -5432100
num.toString()

// num = '-5432100'
8 chạy cuối cùng (mặc dù nó nằm ở dòng đầu tiên của hàm) trên số bị đảo ngược và xóa mọi số 0 ở đầu

  • Nhân nó với dấu của số ban đầu — để duy trì giá trị âm

let num = -5432100
num.toString()

// num = '-5432100'
9 nhân số với dấu của số ban đầu được cung cấp

// original value of num = -5432100
// num = 12345

num * Math.sign(-5432100)

// num = -12345

Và bạn có nó rồi đấy

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Làm cách nào để đảo ngược số trong JavaScript mà không cần sử dụng chức năng?

Bạn chỉ cần sử dụng Math. trunc(x) để trích xuất toàn bộ số từ kết quả của phép chia . hoặc nếu không, bạn cũng có thể sử dụng các phương pháp dưới đây.

Làm cách nào để đảo ngược một số trong JavaScript w3schools?

Đảo ngược mảng JavaScript() . Phương thức reverse() ghi đè lên mảng ban đầu. The reverse() method reverses the order of the elements in an array. The reverse() method overwrites the original array.

Làm cách nào để đảo ngược một hàm JavaScript?

Sự miêu tả. Phương thức đảo ngược mảng Javascript() đảo ngược phần tử của một mảng. .
cú pháp. Cú pháp của nó như sau - mảng. đảo ngược();
Giá trị trả về. Trả về giá trị đơn bị đảo ngược của mảng
Thí dụ. Hãy thử ví dụ sau. .
đầu ra. Mảng đảo ngược là. 3,2,1,0

Làm cách nào để in số đảo ngược trong vòng lặp JavaScript?

Đây là mã của tôi. var n = 352, đảo ngược = 0, dư; . log(đảo ngược); javascript.