当前位置: 首页 > Web前端 > CSS

JS算法与json解析

时间:2023-03-30 15:11:38 CSS

学习目标:第1节数组去重知识点要求第2节数组去重理解第2节数组排序理解第3节json概览掌握json概览第4节掌握json方法第5节json解析json解析大师1.数组去重数组去重是指从数组中找出相同的元素,删除相同的元素。保证数组中的每个元素都是唯一的操作。1.1.indexOf去重的基本思想是:使用数组的indexOf方法,目的是找到存储的参数在数组中第一次出现的位置。缺点:实现该方法时,会遍历数组,直到找到目标,耗时较多。vararr=[1,2,1,3,1,4**,2,3];vararr2=[];for(vari=0;i一开始在arr2中没有元素。循环判断,只要arr中的元素不在arr2中,就把arr中的元素存入arr2中,那么arr2中的最后一个元素就是所有的arr中的非重复元素1.3.进入一个对象,下标引用比使用indexOf搜索数组快得多缺点:大量内存被用来牺牲空间换取时间。**vararr=[1,2,1,3,1,4];varresult=[]varhash={};for(vari=0;arr[i]!=undefined;i++){if(!hash[arr[i]]){result.push(arr[i]);**hash[arr[i]]=true;**}}**一开始结果中没有元素,hash对象中没有属性,一直循环直到数组element为null如果:[hashobject],没有named[currentarrelement]的属性,就是把这个元素添加到新的数组result中,把这个属性添加到hash对象中,如果后面一个很大,那么将两个数组元素交换(即小的放在前面),最后找到最大的元素放在最后,然后再次循环比较。$arr=[100,90,98,70,85,60,87]第一次冒泡:90,98,70,85,60,87,100第二次冒泡:90,70,85,60,87,98,100第三次冒泡:70,85,60,87,90,98,100第4次冒泡:70,60,85,87,90,98,100第5次冒泡:60,70,85,87,90,98,100第6次冒泡:60,70,85,87,90,98,1002.2。快速排序“快速排序”的思想非常简单,整个排序过程只需要三步:(1)在数据集中,选择一个元素作为“枢轴”。(2)将所有小于“pivot”的元素移到“pivot”的左边;所有大于“pivot”的元素都移到“pivot”的右边。(3)对于“基线”左右两个子集,重复第一步和第二步,直到所有子集都只剩下一个元素。2.3递归函数能够调用自身的函数称为递归函数。可以说,递归是编程思维中最头疼的算法,一点都不为过。让我们看一下最经典的递归示例之一。varfunc=function(x){if(x===1){返回1;}else{返回x*func(x-1);}};这是递归最经典的例子,叫做N!。2.4二分查找二分查找的前提:有序数组,自然按顺序(从小到大)找到中间的数,将中间的数和你输入的数进行比较。如果你输入的数字大于中间的数字,你会在后半部分数据中查找,否则你会在前半部分数据中查找。重复上述过程,直到找到满足条件的记录vararr=[2,4,5,9,31,60,79,80,90];使用原型来做。如果有这个数就输出true,没有就输出false。三、JSON概述JSON的英文全称是JavaScriptObjectNotation,是一种轻量级的数据交换格式。它可以存储和传输数据。JSON是一种用于存储和传输数据的独立语言。在服务器端向网页发送数据。JSON语言采用了JavaScript的语法,也就是说在JavaScript中处理JSON数据不需要任何特殊的API或者工具包,但是还是需要说明一下:JSON和Javascript是两种不同的语言。JSON格式只是一种文本,文本可以被任何编程语言读取并作为数据格式传递。3.1json的语法数据是名/值对数据用逗号分隔大括号保存对象中括号保存数组JSON对象写在花括号({})中:Varobj={"name":"peter","sex":"male","age":25}对象可以包含多个名/值对:JSON数据的书写格式为:名/值对。名称/值对由字段名称(双引号)、冒号和值组成{"name":"halon","sex":"woman","from":"Greek"}3.2JSON与JS对象的区别与比较JSONJavascript的含义只是一种数据格式,意思是类的实例传输可以跨平台传输,传输的速度没法比。1.键值对方式,键名必须加双引号2.值不能是methodFunction,不能是undefined/NaN1.键值对方式,键名不加引号2.值可以是函数、对象、字符串、数字、布尔值等。4、JSON提供的方法是我的理解,JSON是(1)将[前台的数据(对象、数组等)]转换成[发送到后台的字符串]。(2)将【后台返回的数据(字符串)】转换为【普通数据(对象、数组等)】。4.1parse()方法JSON.parse(后台传来的数据)反序列化(有时也叫JSON数据解析,简称JSON解析),可以将JSON字符串转为JS数据类型。转换的时候,如果字符串中有不符合JSON要求的格式,会直接报错。JSON解析就是通过某种方式将【后台返回的字符串数据】转化为【可以直接使用的数据】的过程。通常JS中的JSON解析会直接使用JSON中提供的JSON.parse方法进行直接转换。varinfo='{"name":"halon","sex":"woman","from":"Greece"}'console.log(JSON.parse(info));4.2stringify()方法JSON.stringify(要传给后台的数据)序列化(有时称为JSON数据封装或数据加密)可以将JS数据类型转换成JSON字符串。转换时,如果数据中有不符合JSON要求的格式,会做相应的处理