1. 程式人生 > 其它 >操作表格資料---array.forEach()與array.some()

操作表格資料---array.forEach()與array.some()

技術標籤:# js

實現效果:
在這裡插入圖片描述
程式碼:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .con_score
{ width: 550px; margin: 50px auto; } .con_name { width: 550px; margin: auto; } table { /* 居中顯示 */ width: 500px; margin: 10px auto; /* 單元格單線 */ border-collapse
: collapse; /* 文字居中 */ text-align: center; } td, th { border: 1px solid #333; } /* 表頭的行的高和背景色 */ thead tr { height: 40px; background-color: #ccc; }
</style> </head
>
<body> <div class="con_score"> <span>按照價格查詢:</span> <input type="text" id="start"> - <input type="text" id="end"> <button id="scoreOk">確定</button> </div> <div class="con_name"> <span>按照姓名查詢:</span> <input type="text" id="name"> <button id="nameOk">確定</button> </div> <table cellspacing="0"> <thead> <tr> <th>姓名</th> <th>科目</th> <th>成績</th> </tr> </thead> <tbody> </tbody> </table> <script> // 準備好學生的資料 var datas = [{ name: '小明', subject: 'js', score: 100 }, { name: '小新', subject: 'js', score: 98 }, { name: '小夏', subject: 'js', score: 99 }, { name: '小玉', subject: 'js', score: 88 }, { name: '小豬', subject: 'js', score: 0 }]; var tbody = document.querySelector('tbody'); setData(datas); // 自定義函式為表格渲染資料 function setData(array) { //先清空原來行的資料 tbody.innerHTML = ''; array.forEach(function(value) { //console.log(value);這裡value是陣列中的每個物件 var tr = document.createElement('tr'); tr.innerHTML = '<td>' + value.name + '</td><td>' + value.subject + '</td><td>' + value.score + '</td>' tbody.appendChild(tr); }); } // 1.篩選符合分數區間值的資料 var ipt_start = document.querySelector('#start'); var ipt_end = document.querySelector('#end'); var btn_score = document.querySelector('#scoreOk'); btn_score.onclick = function() { // console.log(ipt_start.value); // console.log(ipt_end.value); var newArr = datas.filter(function(value) { return value.score >= ipt_start.value && value.score <= ipt_end.value; }); console.log(newArr); //呼叫渲染資料方法:傳遞引數陣列newArr setData(newArr); } //2.查詢某一個人(唯一)的資料 var ipt_name = document.querySelector('#name'); var btn_name = document.querySelector('#nameOk'); btn_name.addEventListener('click', function() { var arr = []; //查詢陣列中唯一的元素,使用some,效率更高(一旦找到,就終止迴圈) datas.some(function(value) { //value是陣列中的物件 if (value.name === ipt_name.value) { arr.push(value); return true; } }); //呼叫渲染資料方法:傳遞引數陣列arr setData(arr); }) </script> </body> </html>