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

Lọc mảng chỉ chứa phần tử palindrome trong JavaScript

Lọc mảng chỉ chứa phần tử palindrome trong JavaScript

Chúng ta cần viết một hàm JavaScript nhận vào một mảng các giá trị String/Number và trả về một mảng con của tất cả các phần tử là palindrome trong mảng gốc.

Ví dụ

Nếu mảng đầu vào là:

const arr = ['carecar', 1344, 12321, 'did', 'cannot'];

Thì kết quả đầu ra nên là:

const output = [12321, 'did'];

Chúng ta sẽ tạo một hàm phụ nhận vào một số hoặc chuỗi và kiểm tra xem nó có phải palindrome hay không.

Sau đó chúng ta sẽ lặp qua mảng, lọc các phần tử palindrome và trả về mảng đã lọc.

Do đó, hãy viết mã cho hàm này:

Ví dụ

Mã thực hiện như sau:

const arr = ['carecar', 1344, 12321, 'did', 'cannot'];
const isPalindrome = el => {
  const str = String(el);
  let i = 0;
  let j = str.length - 1;
  while(i < j) {
    if(str[i] === str[j]) {
      i++;
      j--;
    } else {
      return false;
    }
  }
  return true;
};
const findPalindrome = arr => {
  return arr.filter(el => isPalindrome(el));
};
console.log(findPalindrome(arr));

Đầu ra

Kết quả trong console sẽ là:

[ 12321, 'did' ]