簡體   English   中英

如何在javascript上過濾對象數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM