javascript算法

前端之家收集整理的这篇文章主要介绍了javascript算法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<table class="javascript"><tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141

],和为的两个数字下标为(也就是),这里假设在数组中这样的组合只存在一个,请问如何找出这一组数据。   看到题的第一眼思路就是两个,这样的思路应该非常普通,实现起来大致如下:   twoSum nums target     judge_i_j     iinums.i         jijnums.j             numsinumsjtarget                 _ii                 _jj                 judge                                                 judge                             _i_j   不过看到别人的答案,觉得很巧妙,它是利用一个map只遍历一遍就找到正确了,利用的是一种逆向思维,例如,目标和为,那么我们知道目标和当前的数字,我们就可以知道另外一半的数字,如当前数字为,我们就知道另外一半的数字肯定为,我们把放入临时的map中,判断以后数字是否有的(在map中找,因为是key因此很快),如果找到就搜索结束了。   twoSum nums target       hash     len nums.     i i len i         numsi hash hashnumsi i         hashtarget numsi i         假如现在有一个数组,然后现在要你把所有的全部移到数组的最后,怎么实现?   最简单的办法就是将数组变成两部分,一部分没有,一部分全部都是,然后将他们拼接起来:   arr arr_leftarr.ni n arr_rightarr.ni n _arr.arr_leftarr_right console._arr   上面虽然可以实现,但是比较麻烦,现在看一个边遍历边修改方法,不是很难,但是平时可能也很难想到:   arr ilarr.ili     arri      arr.arr.i         l         i     console.arr   就是开始计算出数组的长度,当遇到需要移动的数字,我们就把它从数组移除,放到数组最后,同时将遍历的i和数组的长度l都减少一个。 base64编码是常见的一种编码方式,可以在传输数据的时候编码,URL参数编码等。因其编码后内容简单,不可读,因此很多地方也喜欢用它来做简单的编码,像v2ex上就有很多人喜欢把一些简单的内容用base64编码。今天就来看看base64是怎么玩的。   编码原理   base64编码是每三个字符一组,因为一个字符有位,三个字符就会组成位,然后每个一组,分成组,每组前面补上两个凑成位,变成个字符,具体流程如下 当然原生的js也是提供了base64的编码解码方法,其中window.是编码,window.是解码。(b是binary二进制的简写a是base64中a的简写,因为两个开头都是b,因此用a来代表base64)。   js中的是按位或操作符,例如a b就是拿a和b的二进制搁在一块对比,相同位置只要有一个为,那么结果就为,如果都是,那么结果就是。   a 一般这种用法的是想将小数变成整数,如 ,类似用法的还有>等。   按照道理来说a 的结果一般都是a: js中表示数字的都是用位双精度浮点型表示。但是在进行位运算的时候会给个字节去处理(位有符号)。   位有符号可以表示的范围在,如果进行位运算的在这个范围之内的没问题,但是如果大于这个数值(位可以表示的范围远大于它),那么就会发生截断的情况 在位运算的时候都会遇到,例如>等,因此希望大家多长个心眼,以后看到这种问题要小心处理。  http   如何通过非a标签跳转   gotoLinklink     $a$link'     $a.   其实这里我们可以通过这个a的href获取出要跳转的真实地址,然后通过location.跳转 gotoLinklink     $a$link'     href$a.     location.href   有的人可能要说了,这不是废话嘛,a标签肯定有href啊,这还要你说?其实我想说的是,这里的两个href是不一样的,一个是a.一个是a.。   例如你在a的href上放了一个编码的JSON信息(可能你要劫持这个点击事件方法),那么通过a.获取到的是一个路径,而a.才是真正的数据内容。   如何判断数组中没设值的下标 注意不能用forEach去循环,因为会把那个元素过滤。   array iiarray.i  i array  console.i   .ni     n                     console.n                 .ni      console.n         n Error     ex iii     console.i     i 将数字转成中文 http console.. 零宽空白http 那个里面包含了个零宽空白,它是由四个零宽度的符号相加而成的,200b'200c'200d'feff',大家可以将这个代码复制运行,虽然看不到任何东西,但其实真的包含了个字符。   零宽空白简单来说就是一个宽度为的空白符号,由200b'200c'200d'feff'等组成。利用这个可以做一个简单的加密揭秘小玩意    

猜你在找的JavaScript相关文章