Đối với chức năng này, bạn được cung cấp một mảng. Mảng này chứa các số nguyên và tất cả chúng đều có số lượng trùng lặp ngoại trừ một số. Mục tiêu của hàm là tìm số đó xuất hiện với số lần lẻ và trả về số đó
Nếu không có số nào trùng số lẻ thì hàm sẽ trả về -1
Ví dụ
findOdd[[1,1,1,1,1,1,10,1,1,1,1]] // output: 10findOdd[[20,1,1,2,2,3,3,5,5,4,20,4,5]] // output: 5
Điều đầu tiên chúng ta sẽ làm là lặp qua arr
for [let i = 0; i < arr.length; i++] {
const count = arr.filter[value => value === arr[i]].length;
if [count % 2 == 1] {
return arr[i];
}
}
Ở dòng đầu tiên bên trong vòng lặp for, chúng ta sử dụng phương thức filter[]
để tạo một mảng mới chứa tất cả các giá trị khớp với giá trị lặp hiện tại. Chúng tôi cũng sử dụng phương pháp
for [let i = 0; i < arr.length; i++] {
const count = arr.filter[value => value === arr[i]].length;
if [count % 2 == 1] {
return arr[i];
}
}
0 để giúp chúng tôi có được số bản sao cho số cụ thể đó trong arr
Chúng tôi gán số này cho biến
for [let i = 0; i < arr.length; i++] {
const count = arr.filter[value => value === arr[i]].length;
if [count % 2 == 1] {
return arr[i];
}
}
1const count = arr.filter[value => value === arr[i]].length;
Chúng tôi sử dụng câu lệnh if để kiểm tra xem
for [let i = 0; i < arr.length; i++] {
const count = arr.filter[value => value === arr[i]].length;
if [count % 2 == 1] {
return arr[i];
}
}
1 có phải là số lẻ không. Nếu đúng như vậy, chúng tôi dừng vòng lặp bằng cách trả về sốNếu vòng lặp kết thúc, chúng tôi trả về -1
để nói rằng không có số nào như vậy với số lượng trùng lặp lẻ trong mảng
return -1;
Đó là nó
Đây là chức năng đầy đủ
Nếu bạn thấy thuật toán này hữu ích, hãy xem các bài viết về giải pháp thuật toán JavaScript khác của tôi
Thuật toán JavaScript. Lợn đơn giản Latin
Dịch một chuỗi sang Pig Latin
jav. tiếng Anh đơn giản. io
Thuật toán JavaScript. duy nhất theo thứ tự
Trả về một danh sách các mục duy nhất mà không thay đổi thứ tự ban đầu của các phần tử
lên cấp. gitconnected. com
Thuật toán JavaScript. Phân loại Thành viên mới
Tạo một hàm sẽ phân loại các thành viên câu lạc bộ croquet mới dựa trên dữ liệu trong một mảng
lên cấp. gitconnected. com
Tăng cấp mã hóa
Cảm ơn vì đã là một phần của cộng đồng của chúng tôi. Đăng ký kênh YouTube của chúng tôi hoặc tham gia Skilled. khóa học phỏng vấn lập trình dev
Điều quan trọng cần lưu ý là phương thức filter[] chấp nhận chức năng gọi lại. Hàm gọi lại này được gọi cho từng phần tử của mảng. Bên trong hàm gọi lại, bạn kiểm tra xem một số có chia hết cho 2 hay không, và để làm điều này, hãy sử dụng toán tử modulo [%]. Nếu giá trị trả về bởi toán tử modulo là 0, thì số đó chia hết cho 2;
Nếu một số không chia hết cho 2, thì hãy trả về
for [let i = 0; i < arr.length; i++] {
const count = arr.filter[value => value === arr[i]].length;
if [count % 2 == 1] {
return arr[i];
}
}
3 để nó trở thành một phần của mảng mới và bằng cách này, bạn có thể tìm thấy các số lẻ trong một mảngTrong trường hợp bạn không muốn sử dụng phương thức filter[] thì có thể sử dụng phương thức forEach[]
Để tìm các số lẻ trong một mảng bằng phương thức forEach[], hãy làm theo các bước sau
- Đầu tiên, tạo một mảng trống, trong đó bạn sẽ lưu trữ các số lẻ của mảng
- Gọi phương thức
for [let i = 0; i < arr.length; i++] {
4 trên mảng mà bạn muốn tìm các số lẻ
const count = arr.filter[value => value === arr[i]].length;
if [count % 2 == 1] {
return arr[i];
}
} - Chỉ định điều kiện bên trong hàm gọi lại của phương thức forEach[]. Điều kiện sẽ kiểm tra xem một số có chia hết cho 2 hay không
- Nếu số không chia hết cho 2 thì đẩy phần tử mảng đó sang mảng mới tạo ở bước 1
let oddNumbers = []; let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; numbers.forEach[number => { if[number % 2 !== 0]{ oddNumbers.push[number]; } }]; console.log[oddNumbers]; //[1, 3, 5, 7, 9]
Ghi chú. Phương thức forEach[] không sửa đổi mảng ban đầu
Phương thức forEach[] được sử dụng để lặp qua mảng. Nó chấp nhận một chức năng gọi lại. Hàm gọi lại này được gọi trên từng phần tử của mảng
Để lọc các số lẻ của một Array số nguyên trong JavaScript, hãy gọi Array. filter[] trên mảng số nguyên này và truyền một hàm làm đối số trả về true cho một số lẻ hoặc false nếu ngược lại. phương thức filter[] trả về một mảng có các phần tử từ mảng ban đầu trả về true cho hàm gọi lại đã cho
Ví dụ
Trong đoạn script sau, chúng tôi lấy một mảng số nguyên arr
và lọc các số lẻ trong Mảng này. Chúng tôi chuyển một hàm lambda cho phương thức filter[]
mục lục. html
► Chạy ⟳ Đặt lại
Phần kết luận
Trong Hướng dẫn JavaScript này, chúng ta đã học cách sử dụng Array. phương pháp filter[] để lọc các số lẻ của một mảng số nguyên với các ví dụ