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

Trả về số lẻ duy nhất từ mảng trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một mảng số nguyên arr làm đối số duy nhất. Mảng hoặc toàn số chẵn chỉ có một số lẻ, hoặc toàn số lẻ chỉ có một số chẵn. Hàm phải trả về phần tử khác biệt này.

Ví dụ, nếu đầu vào là:

Đầu vào

const arr = [5, 9, 7, 11, 34, 23, 77];

Đầu ra

const output = 34;

Giải thích

Vì mảng toàn số lẻ trừ 34 là số chẵn.

Ví dụ

Dưới đây là mã thực hiện:

const arr = [5, 9, 7, 11, 34, 23, 77];
const findDifferent = (arr = []) => {
  let { length: len } = arr, i;
  const evens = [];
  const odds = [];
  let k;
  for (i = 0; i < len; i++) {
    if (arr[i] % 2 == 0) {
      evens.push(arr[i]);
    }
    if (Math.abs(arr[i] % 2) == 1) {
      odds.push(arr[i]);
    }
  }
  if (evens.length > odds.length)
    return odds[0];
  else
    return evens[0];
};
console.log(findDifferent(arr));

Kết quả

34