JavaScript 中的迴文

Shraddha Paghdar 2023年10月12日
  1. 在 JavaScript 中使用內建函式進行迴文運算
  2. 帶有 for 迴圈的 JavaScript 迴文
JavaScript 中的迴文

迴文是一個單詞、數字、短語或其他可以前後閱讀的字元序列,例如 adidaracecar。還有數字迴文,包括使用短數字的日期和時間戳。

例如,2011 年 11 月 11 日 被認為是迴文日 111111,使用 dd-mm-yy 格式,因為它可以從左到右閱讀,反之亦然。句子長度迴文忽略標點符號、大寫字母和單詞邊界。

這篇文章教我們檢查字串/數字是否是 JavaScript 中的迴文。

在 JavaScript 中使用內建函式進行迴文運算

JavaScript 提供了幾個函式,我們可以使用它們來檢測字串是否為迴文。

  1. 首先,使用 string.split() 函式將字串轉換為陣列。

split() 方法是 JavaScript 提供的內建方法。此方法將字串拆分為子字串列表。

通過將分隔符作為輸入來執行此切割。

這個分隔符純粹是一個可選的輸入。並基於此,將所有這些子字串放入一個陣列中,並返回該陣列。

你還可以將 limit 作為輸入傳遞給該方法,從而限制陣列中子字串的數量。

  1. 其次,使用 reverse() 方法反轉陣列的值。

reverse() 方法是 JavaScript 提供的內建方法。此方法改為反轉原始陣列。

陣列的第一個元素成為陣列的最後一個元素,陣列的最後一個元素成為第一個元素。

  1. 最後,使用 join() 方法將陣列的值分組到字串中。

join() 方法是 JavaScript 提供的內建方法。此方法通過連線陣列(或類似陣列的物件)中的所有元素建立並返回一個新字串,由逗號或指定的分隔符字串分隔。

如果陣列只有一個元素,則返回該元素而不使用分隔符。

讓我們結合上述所有方法並檢查輸入字串是否為迴文。

function palindromeFn(inputString) {
  return inputString == inputString.split('').reverse().join('');
}
console.log(palindromeFn('aviddiva'))
console.log(palindromeFn('Hello'))

如果我們在任何瀏覽器中執行上述程式碼,它將顯示以下結果。

輸出:

"true"
"false"

帶有 for 迴圈的 JavaScript 迴文

檢查字串是否為迴文的另一種方法是使用 for 迴圈。以下是在 JavaScript 中檢查字串是否為迴文的步驟。

  • 首先,取一個包含要檢查的字串長度的臨時變數。
  • 應用 for 迴圈並設定條件以檢查字串的一半長度。
  • 將原始字串字元與反轉字串字元進行比較。
  • 如果前後字元相同,則字串或數字為迴文。否則,指定的字串或數字不是迴文。
function palindromeFn(string) {
  const stringLength = string.length;
  for (let i = 0; i < stringLength / 2; i++) {
    if (string[i] !== string[stringLength - 1 - i]) {
      return 'It is not a palindrome.';
    }
  }
  return 'It is a palindrome.';
}
console.log(palindromeFn('aviddiva'));
console.log(palindromeFn('Hello'));

如果我們在任何瀏覽器中執行上述程式碼,它將顯示以下結果。

輸出:

"It is a palindrome."
"It is not a palindrome."
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn