[英]How to filter object array on javascript
我是 js 新手
我想用 onekeyup 編寫一個代碼來搜索數組中的對象。 我不知道如何使用一個/特定參數而不是所有參數來執行此操作。
例如。 如果我輸入 tokyo,那么它不會顯示任何內容,因為它不是“名稱”參數
script.js 和 index.html
function checkOnKeyUp(input){ const filtered = datas.filter(element => { for (const value of Object.values(element)) { if ( value.toString() .toLowerCase() .includes(input.value.toLowerCase()) ) return true; } }) console.log('Name: ', filtered); document.getElementById("result").innerText=JSON.stringify(filtered) } const datas = [{ "nickname":"abi","name":"Abi sholeh","id":123,"birth":"1999-05-09","address":"new york"},{"nickname":"abc","name":"abc james","id":112,"birth":"1999-05-04","address":"tokyo"}];
<!DOCTYPE html> <html lang="en"> <head> <title>Pengenalan Javascript</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <input type="text" id='search' name='search' onkeyup="checkOnKeyUp(this)"> <div id="result"></div> <script src="./script.js"></script> </body> </html>
謝謝
我認為您正在嘗試執行以下操作:
datas.map(data => Object.values(data))
.flat()
.filter(value =>
value.toString()
.toLowerCase()
.includes(input.value.toLowerCase()
)
.forEach(data => {
data = 'nama';
});
也許這就是你要找的:
function checkOnKeyUp(input){
let value = input.value.toLowerCase();
let filtered = datas.filter(element => {
return element.name.toLowerCase() === value;
})
console.log('Name: ', filtered.name);
document.getElementById("result").innerText=JSON.stringify(filtered)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.