Hỏi về lỗi trong tìm kiếm, hiển thị trong javascript

Chào mọi người, hiện tại mình đang cố làm 1 thanh tìm kiếm, dữ liệu là fetch về từ api, nhưng gặp lỗi chỗ x.includes. Nó báo lỗi là x.includes is not a function, mình đã lên mạng kiểm tra nhưng mò mãi vẫn không hiểu lí do lỗi là gì nên đăng lên đây mong được chỉ điểm

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	
    
    <div>
    	<input type="text" name="Thanh tìm kiếm" placeholder="Nhập tên phim" id="thanhtimkiem">
    	<input type="button" name="Nút tìm kiếm"
    	id="nuttimkiem" value="Tìm">
    	<input type="button" name="Nút hiển thị"
    	id="nuthienthi" value="Hiển thị">
    </div>
	<div id="Title"></div>
	<div id="Result"></div>




	<script type="text/javascript" >
		let API = 'https://api.themoviedb.org/3/search/movie?api_key=f0f3c0668b8133927ac87e3dca27b62a&query=%24i&page=1&fbclid=IwAR3bOPqImv9FYuSwa9RgTE1NQ4ngjfAcMDXZEK15-EmUG0U-k0uFZUpr0vA';
		const inputBar = document.querySelector('#thanhtimkiem');
		const inputBtn = document.querySelector('#nuttimkiem');
		inputBtn.addEventListener('click',find);
		const outputBtn = document.querySelector('#nuthienthi');
		
		function find() {
			let name = document.getElementById('thanhtimkiem').value;
			fetch(API)
			.then(response => {
				return response.json();
			})
			.then(films => {
				const result = films.results;
				console.log(result);
				const resultFind = result.filter(x => {x.includes(name)});

				document.getElementById('Result').innerHTML = resultFind;
			})
}
	</script>
</body>
</html>

bạn nghĩ biến x đó là gì mà lại dùng x.includes?

4 Likes

Cú pháp của JavaScript mới tinh gọn và khó hiểu hen, mấy người mà không chịu đọc sách về ES5, ES6 lại nhảy vào viết mấy cái code rối nùi kia thì quả là… dũng cảm.

5 Likes

cái biến x nó là 1 object nên nó ko hiểu function includes
nếu bạn muốn lọc ra tên phim phù hợp thì nên xem cái biến x nó chứa những attributes
có thể sẽ là x.tenPhim, x.title, …
code nên là
resultFind = result.filter(x => {x.tenPhim.includes(name)})

4 Likes

Cảm ơn bạn, mình làm được rồi. Ra là vậy

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?