排序

  1. var arr1 = [{
  2. name:"肯德基",price:100,distance:500
  3. },{
  4. name:"必胜客",price:200,distance:100
  5. },{
  6. name:"华莱士",price:50,distance:1000
  7. }]
  8. var mySelect = document.getElementById("mySelect")
  9. mySelect.onchange = function(){
  10. // if(this.value === "distance"){
  11. // arr1.sort(function(a,b){
  12. // return a.distance-b.distance
  13. // })
  14. // console.log(arr1);
  15. // }else{
  16. // arr1.sort(function(a,b){
  17. // return a.price-b.price
  18. // })
  19. // console.log(arr1);
  20. // }
  21. var value = this.value
  22. // 对象的某个属性时变量,不能用. 只能使用[]的方式
  23. arr1.sort((a,b)=>a[value]-b[value])
  24. console.log(arr1);
  25. }
  1. var sum = 0
  2. var arr = [{
  3. name:"肯德基",price:100,distance:500,num:2
  4. },{
  5. name:"必胜客",price:200,distance:100,num:1
  6. },{
  7. name:"华莱士",price:50,distance:1000,num:5
  8. }]
  9. for(var i=0;i<arr.length;i++){
  10. sum += (arr[i].price*arr[i].num)
  11. }
  12. console.log(sum);
  13. 求总价格

遍历

  1. var value
  2. var arr = [
  3. {name:'html',value:"12px"},
  4. {name:'css',value:"13px"},
  5. {name:'hjs',value:"14px"}
  6. ]
  7. arr.forEach(item=>{
  8. value = parseInt(item.value)*2;
  9. item.value = value
  10. })
  11. console.log(arr);
  1. var nums = []
  2. var arr = [
  3. {name:'html',value:"12px"},
  4. {name:'css',value:"13px"},
  5. {name:'hjs',value:"14px"}
  6. ]
  7. arr.map(item=>{
  8. nums.push(parseInt(item.value)*2)
  9. })
  10. console.log(nums.join("-"));
  11. var str = [12,13,14]
  12. for(let v in str){
  13. str[v] *= 2
  14. }
  15. console.log(str);
  16. 将数组中的value值变成24-26-28

some

  1. var arr = [3,4,5,6]
  2. // 只要数组中一项满足某个条件结果就是true
  3. var res = arr.some(item=>{
  4. return item>7
  5. })
  6. console.log(res); //false

every

  1. // 返回值为布尔值
  2. // every 数组中的每一个项,都必须满足某个条件
  3. var arr = [2,3,4]
  4. var res = arr.every(item=>{
  5. return item>2
  6. })
  7. console.log(res); //false

filter

  1. var students = [
  2. {name:"李四",age:"18岁"},
  3. {name:"李二",age:"11岁"},
  4. {name:"李五",age:"19岁"},
  5. {name:"王四",age:"22.5岁"}
  6. ]
  7. var result = students.filter(item=>{
  8. return parseInt(item.age)>11
  9. })
  10. console.log(result);
  11. 拿到age大于11岁的
  1. var students = [
  2. {name:"李四",age:"18岁"},
  3. {name:"李二",age:"11岁"},
  4. {name:"李五",age:"19岁"},
  5. {name:"王四",age:"22.5岁"}
  6. ]
  7. var app = document.getElementById('app')
  8. app.onkeydown = function(event){
  9. if(event.keyCode === 13){
  10. var keyword = this.value
  11. var res = students.filter(item=>{
  12. return item.name.includes(keyword) || item.age.includes(keyword)
  13. })
  14. console.log(res);
  15. }
  16. }
  17. 在输入框中输入值,返回符合条件的新数组

find

  1. var arr = [2,3,4,3]
  2. var res = arr.find(item=>{
  3. return item == 3
  4. })
  5. console.log(res);//3

findIndex

  1. var arr = [2,3,4]
  2. var index = arr.findIndex(item=>{
  3. return item == 4
  4. })
  5. console.log(index); //2
  1. <input type="text" id="app">
  2. <script>
  3. var arr = [
  4. {name:"李四",id:1001},
  5. {name:"王四",id:1002},
  6. {name:"张四",id:1003},
  7. {name:"赵四",id:1004}
  8. ]
  9. var app = document.getElementById('app')
  10. app.onkeydown = function(event){
  11. if(event.keyCode === 13){
  12. // var keyword = this.value
  13. // for(var key in arr){
  14. // if(keyword == arr[key].id){
  15. // arr.splice(key,1)
  16. // console.log(arr);
  17. // }
  18. // }
  19. var id = Number(this.value)
  20. var res = arr.findIndex(item=>{
  21. return item.id == id
  22. })
  23. arr.splice(res,1)
  24. console.log(arr);
  25. }
  26. }
  27. </script>
  28. 在输入框中输入id,通过输入的id在数组中查找,有的话,就删除

复习

  1. <h2>历史搜索</h2>
  2. <input type="text" id="app">
  3. <div id="container">
  4. </div>
  5. <script>
  6. // 1、获取输入框的值
  7. var historys = []
  8. $('#app').keyup(function(event){
  9. if(event.keyCode === 13){
  10. // 2、将值添加到一个数组中
  11. var value = $(this).val()
  12. //tips:jQuery可以将带html结构的字符串,转化为html
  13. var template = `
  14. <button>${value}</button>
  15. `
  16. // 只有数组中不包含输入的关键字才向数组添加
  17. if(value && !historys.includes(value)){
  18. historys.unshift(value)
  19. console.log(historys);
  20. // 3、渲染数据到页面
  21. $('#container').prepend(template)
  22. $(this).val("")
  23. }else{
  24. // 4、当输入的值数组中存在的时候,让其置于数组的首位
  25. var index = historys.indexOf(value)
  26. var res = historys.splice(index,1)
  27. //historys.unshift(value)
  28. historys.unshift(...res)
  29. console.log(historys);
  30. // ui联动
  31. $('#container button').eq(index).remove()
  32. $('#container').prepend(template)
  33. $(this).val("")
  34. }
  35. }
  36. })
  37. </script>
  38. 历史搜索:在输入框中输入,然后将其value值添加到数组中,并通过字符串模版将其添加到页面上,
  39. 如果输入的有重复的值,则将那个中放到数组和页面的顶部(前面)
  1. 让数组中被搜索的值置于顶部
  2. <input type="text" id="app">
  3. <script>
  4. // 让数组中被搜索的值置于顶部
  5. var arr = ['html','css','js','vue','react']
  6. $('input').keyup(function(event){
  7. if(event.keyCode === 13){
  8. var value = $(this).val()
  9. if(arr.includes(value)){
  10. var index = arr.indexOf(value)
  11. var res = arr.splice(index,1)
  12. arr.unshift(...res)
  13. console.log(arr);
  14. $(this).val("")
  15. }
  16. }
  17. })
  18. </script>