10
0

15.列表排序.html 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <div id="app">
  10. <h2>关键字搜索:<input type="text" v-model="keywords" /></h2>
  11. <ul>
  12. <li v-for="(item,index) in newList" :key="index">
  13. {{index+1}}-我叫{{item.name}}--今年{{item.age}}--是一个{{item.sex}}孩
  14. </li>
  15. </ul>
  16. <button @click="sortType = 1">升序</button><br /><br />
  17. <button @click="sortType = 2">降序</button><br /><br />
  18. <button @click="sortType = 0">默认排序</button>
  19. </div>
  20. <script src="./vue.js"></script>
  21. <script>
  22. var app = new Vue({
  23. data: {
  24. arr: [
  25. {
  26. name: "LiLi",
  27. age: 10,
  28. sex: "女",
  29. },
  30. {
  31. name: "John",
  32. age: 17,
  33. sex: "男",
  34. },
  35. {
  36. name: "Lucy",
  37. age: 22,
  38. sex: "女",
  39. },
  40. {
  41. name: "Jack",
  42. age: 20,
  43. sex: "男",
  44. },
  45. {
  46. name: "孙悟空",
  47. age: 33,
  48. sex: "男",
  49. },
  50. {
  51. name: "猪八戒",
  52. age: 30,
  53. sex: "男",
  54. },
  55. ],
  56. keywords: "",
  57. sortType: 0,
  58. List: [],
  59. },
  60. computed: {
  61. newList() {
  62. this.List = this.arr.filter((item) => {
  63. return item.name.indexOf(this.keywords) !== -1;
  64. });
  65. if (this.sortType) {
  66. this.List.sort((a,b) => {
  67. return this.sortType == 1 ? a.age - b.age : b.age - a.age;
  68. })
  69. }
  70. return this.List;
  71. },
  72. },
  73. }).$mount("#app");
  74. </script>
  75. </body>
  76. </html>