8.26study(补)

用js实现一个方法,返回数组里出现次数最多的一个元素。

  代码:

 

function maxCountElement(arr) {  
   var obj={};
   for(var i=0;i<arr.length;i++){  
//建立空对象,利用对象键值对,以数组元素为键,次数为值。 var key=arr[i]; if(obj[key]){ obj[key]++; }else{ obj[key]=1; } } var maxCount=0; var maxElement=arr[0]; var eq = []; for(var key in obj){ if(maxCount < obj[key]){ maxCount=obj[key]; maxElement=key; eq.length=0; }else if(maxCount === obj[key]){ eq.push(key); } } if(eq.length > 0){ for(var j=0;j<eq.length;j++){ maxElement+=','+eq[j]; } } return "该数组中出现次数最多的元素:"+maxElement+" } var arr = [1,2,2,3,3,4,5,6]; var res = maxCountElement(arr); console.log(res);

 

  

请用js程序实现二分查找算法,在数组[2,12,30,34,55,59,102,200]中找出59的所在数组下标。

二分法查找:是一种搜索某个值的索引的算法。

基本条件:有序的数组。

思路:将数组折半,分成左右两个数组,判断要查找的数和中间位置数值的大小,来判断要查找的数值在哪一边,之后继续折半查找,直到找到这个数。

方法:二分法查找的两种方法,一种是非递归方式,采用while方式。另一种是递归方式,用if方式递归查找。

 代码:

 

function binary_search(arr, key) {
  var low = 0,
      high = arr.length - 1;

  while (low <= high) {
      var mid = parseInt((high + low) / 2);
      if (key == arr[mid]) {
          return mid;
      } else if (key > arr[mid]) {
          low = mid + 1;
      } else if (key < arr[mid]) {
          high = mid - 1;
      } else {
          return -1;
      }
  }
}
var arr=[2,12,30,34,55,59,102,200];
var key=59;
binary_search(arr,key)

 

  

 

 

用js实现一个方法,去重数组里的重复元素。

  代码:

 

Set方法
var arr=[1,1,2,3] var newArr=new Set(arr); console.log(newArr); // JS var arr=[1,2,3,3,4,2,1]; var newArr=[]; for(var i=0;i<arr.length;i++){ if(newArr.indexOf(arr[i])==-1){ newArr.push(arr[i]); } } console.log(newArr); 

每隔一秒输出一次i值,i的值初始值为0,每次加1.

  js代码:

var i=0;
setInterval(function(){
  console.log(i);
  i++;
},1000)

实现一个数组柱状图,根据数组的每项作为高度,点击按钮顺序倒叙切换。

  代码:

<!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>
    #box {
      display: flex;
    }

    /* #sbox{
      display: flex;
    } */
  </style>
</head>

<body>
  <div id="box"></div>
  <!-- <div id="sbox"></div> -->
  <p id="btn">anniu1</p>
</body>
<script>
  var arr = [1, 2, 3];
  var sBox = document.getElementById('box');
  // var ssBox=document.getElementById('sbox');
  var btn = document.getElementById('btn');
  // 初始
  function bed(){
    for (var i = 0; i < arr.length; i++) {
      var div = document.createElement('p');
      console.log(arr[i] * 1000)
      div.style.height = arr[i] * 100 + 'px';
      div.style.width = 200 + 'px';
      div.style.backgroundColor = "red";
      div.style.margin = 20 + 'px';
      sBox.appendChild(div);
      console.log(22)
    }

  }
  bed()
  // 按钮
  btn.onclick = () =>{
    var divOld = document.getElementsByTagName('p');
    console.log(divOld)
    // if(divOld.length==1){return}
    for (var i = 0; i < divOld.length; i++) {
      sBox.removeChild(divOld[i]);

    }
    sBox.removeChild(divOld[0]);
    console.log(divOld)
    arr = arr.reverse();
    console.log(arr);
    // for (var i = 0; i < arr.length; i++) {
    //   var div = document.createElement('p');
    //   console.log(arr[i] * 1000)
    //   div.style.height = arr[i] * 100 + 'px';
    //   div.style.width = 200 + 'px';
    //   div.style.backgroundColor = "red";
    //   div.style.margin = 20 + 'px';
    //   sBox.appendChild(div);
    // }
      bed()
  }
</script>

</html>

 

  vue+echart实现:

 loding.....

 

简单阐述new一个对象的过程

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/new

理解:

 

 

 

H5和小程序的区别:

  1.运行环境

  传统的h5运行环境是浏览器,包括webview等。

  微型小程序运行环境是非完整的浏览器,是基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,大幅提升了小程序的流畅度和性能。

  2.开发成本

  当开发一个h5的页面需求时,我们考虑的从开发工具,前端框架,模块管理工具,任务管理工具,ui库的选择,接口调用工具,浏览器兼容性等等都需要考虑周到。

  而微信提供了统一的开发工具,并且规范了开发标准,所以,作为开发者,你需要专注写代码就ok了,而且,你可以随意调用微信开发中的api,不用担心浏览器的兼容性,

  因此,小程序的开发成本逼以往的HTML5开发的web成本低很多。

  3.系统权限。

  微信能获取更多的系统权限,如网络通讯状态,缓存能力等,这些系统级权限都能和微信小程序无缝衔接,也就是官方宣称的拥有Native App的流畅性能。

  而HTML5 web应用则相对少了很多。

  4.用户体验。

  在打开一个HTML5页面的时候,实际上就是打开一个web网页而网页在浏览的时候,需要在浏览器中进行渲染,这个过程叫加载,无论时间长短,都会给用户一种不灵敏的感觉。

  小程序是微信内的云端应用,通过websocket双向通信,本地缓存以及微信底层技术优化实现了小程序接近原生APP的体验。所以在使用小程序的时候,同等网络条件下几乎不用等待,可以像操作普通app一样流畅。

 

posted @ 2020-08-27 01:02  胡炖鱼  阅读(101)  评论(0编辑  收藏  举报