Legendary

李洋的学习笔记


数组Array

<h3>数组(Array)</h3> <p>1、arr.concat(arr1,arr2,...):连接两个或多个数组。该方法不会改变现有的数组,仅会返回被连接数组的一个副本。</p> <pre><code>var arr1 = [1,2,3] var arr2 = ['a','b','c'] var arr3 = [111,222,333] var arr = arr1.concat(arr1,arr2,arr3) console.log(arr)//[1, 2, 3, 1, 2, 3, "a", "b", "c", 111, 222, 333]</code></pre> <p>2、arr.join():把数组中所有元素放入一个字符串中,用指定分隔符连接,默认使用','分割,不改变原数组。</p> <pre><code>var arr = [1,2,3] var str = arr.join('') console.log(str)//123</code></pre> <p>3、arr.push(obj1,obj2,...):向数组的末尾添加一个或多个元素,并返回新的长度。末尾添加,返回的是长度,会改变原数组。</p> <pre><code>var arr = [1,2,3] var res = arr.push(1,2,3) console.log(arr)//[1,2,3,1,2,3] console.log(res)//6</code></pre> <p>4、arr.pop():删除并返回数组的最后一个元素。返回最后一个元素,会改变原数组。</p> <pre><code>var arr = [1,2,3] var res = arr.pop() console.log(arr)//[1,2] console.log(res)//3</code></pre> <p>5、arr.shift():把数组的第一个元素从其中删除,并返回第一个元素的值。返回第一个元素,改变原数组。</p> <pre><code>var arr = [1,2,3] var res = arr.shift() console.log(arr)//[2,3] console.log(res)//1</code></pre> <p>6、arr.unshift(obj1,obj2,...):向数组的开头添加一个或更多元素,并返回新的长度。返回新长度,改变原数组。</p> <pre><code>var arr = [1,2,3] var res = arr.unshift(1,2,3) console.log(arr)//[1,2,3,1,2,3] console.log(res)//6</code></pre> <p>7、arr.slice(start,end):分割出一个新数组,元素内容[start,end),不改变原数组(end为负值时为倒数)</p> <pre><code>var arr = [1,2,3] var res = arr.slice(1,3) console.log(arr)//[1,2,3] console.log(res)//[2,3]</code></pre> <p>8、arr.splice(start,n):删除从start开始的n个元素并返回被删元素的数组,改变原数组</p> <pre><code>var arr = [1,2,3] var res = arr.splice(1,2) console.log(arr)//[1] console.log(res)//[2,3]</code></pre> <p>9、arr.sort():按照 Unicode code 位置排序,默认升序,改变原数组,传入回调时按大小排序</p> <pre><code>var arr1 = [12,44,9,23,'a','?'] arr1.sort() console.log(arr1)//unicode 排序 arr1.sort(function(a,b){return a-b}) console.log(arr1)//增序 arr1.sort(function(a,b){return b-a}) console.log(arr1)//降序</code></pre> <p>10、arr.reverse():颠倒数组中元素的顺序,返回颠倒后的数组,改变原数组</p> <pre><code>var arr1 = [12,44,9,23,'a','?'] arr1.reverse()//["?", "a", 23, 9, 44, 12]</code></pre> <p>11、arr.indexOf(v,start):顺序查找数组中的值的位置,从start位置开始查找,默认从头(0)开始,不存在时返回-1; arr.lastIndexOf(v,start):逆序查找数组中的值的位置,从start位置开始查找,默认从最后一个开始,不存在时返回-1; 12、arr.every((item,index,arr)=&gt;{}):循环操作数组中的元素,每一个都为true时,every才返回true,否则返回false并停止</p> <pre><code>var arr1 = [12,44,9,23] var res = arr1.every((item,index,arr)=&gt;{ console.log('item',item) console.log('index',index) console.log('arr',arr) return item&gt;10 }) console.log(res)//false</code></pre> <p>12、arr.some((item,index,arr)=&gt;{}):循环操作数组中的元素,只要有返回值为true时,some就返回true并停止,若全部返回值都是false,则some返回false</p> <pre><code>var arr1 = [12,44,9,23] var res = arr1.some((item,index,arr)=&gt;{ console.log('item',item) console.log('index',index) console.log('arr',arr) return item&gt;10 }) console.log(res)//true</code></pre> <p>13、arr.filter((item,index,arr)=&gt;{}):循环操作数组中的元素,返回为true时的所有元素的集合</p> <pre><code>var arr1 = [12,44,9,23] var res = arr1.filter((item,index,arr)=&gt;{ console.log('item',item) console.log('index',index) console.log('arr',arr) return item&gt;10 }) console.log(res)//[12, 44, 23]</code></pre> <p>14、arr.map((item,index,arr)=&gt;{}):循环操作数组中的元素,返回所有元素的结果集合</p> <pre><code>var arr1 = [12,44,9,23] var res = arr1.map((item,index,arr)=&gt;{ console.log('item',item) console.log('index',index) console.log('arr',arr) return item*2 }) console.log(res)//[24, 88, 18, 46]</code></pre> <p>15、arr.forEach((item,index,arr)=&gt;{}):循环操作数组中的元素,没有返回值</p> <pre><code>var arr1 = [12,44,9,23] var arr2 = [] var res = arr1.forEach((item,index,arr)=&gt;{ console.log('item',item) console.log('index',index) console.log('arr',arr) arr2.push(item) }) console.log(res)//undefined console.log(arr2)//[12,44,9,23]</code></pre> <p>16、arr.find((item,index,arr)=&gt;{}):循环操作数组中的元素,返回第一个符合要求的值并停止</p> <pre><code>var arr1 = [12,44,9,23] var res = arr1.find((item,index,arr)=&gt;{ console.log('item',item) console.log('index',index) console.log('arr',arr) return item&lt;10 }) console.log(res)//9</code></pre> <p>17、arr.findIndex((item,index,arr)=&gt;{}):循环操作数组中的元素,返回第一个符合要求的下标并停止</p> <pre><code>var arr1 = [12,44,9,23,2] var res = arr1.findIndex((item,index,arr)=&gt;{ console.log('item',item) console.log('index',index) console.log('arr',arr) return item&lt;10 }) console.log(res)//2</code></pre> <p>18、arr.fill(value,start,end):用新值替换掉旧值,改变原数组,可指定范围 19、arr.copyWithin(target, start, end):复制数组中的元素,从下标为target开始替换,替换的内容arr[start,end) 20、Array.from(obj):将类数组对象、可遍历(iterable)的对象(字符串可以,数值不可以)转化为真正的数组 21、Array.of():用于将一组值,转换为数组。这个方法的主要目的,是弥补数组构造函数 Array() 的不足。因为参数个数的不同,会导致 Array() 的行为有差异。</p> <pre><code>Array() // [] Array(3) // [, , ,] length:3 Array(100)//[empty*100] length:100 Array(3, 11, 8) // [3, 11, 8] Array.of(7); // [7] Array.of(1, 2, 3); // [1, 2, 3]</code></pre> <p>22、arr.entries():返回迭代器,返回键值对的集合,可用next()方法逐一输出</p> <pre><code>var arr1 = [111,222,333,444] var itertor = arr1.entries() console.log(itertor.next())//{value:[0,111],done:false} console.log(itertor.next())//{value:[1,222],done:false} console.log(itertor.next())//{value:[2,333],done:false} console.log(itertor.next())//{value:[3,444],done:false} console.log(itertor.next())//{value:undefined,done:true} //逐条打印迭代器的value(数组键值对的集合) for(let kv of arr1.entries()){ console.log(kv) } //[0,111] //[1,222] //[2,333] //[3,444]</code></pre> <p>23、arr.keys():返回迭代器,返回数组的下标,可用next()方法逐一输出</p> <pre><code>var arr1 = [111,222,333,444] var itertor = arr1.keys() console.log(itertor.next())//{value:111,done:false} console.log(itertor.next())//{value:222,done:false} console.log(itertor.next())//{value:333,done:false} console.log(itertor.next())//{value:444,done:false} console.log(itertor.next())//{value:undefined,done:true} for(let k of arr1.keys()){ console.log(k) } //0 //1 //2 //3</code></pre> <p>24、arr.values():返回迭代器,返回数组的值,可用next()方法逐一输出</p> <pre><code>var arr1 = [111,222,333,444] var itertor = arr1.values() console.log(itertor.next())//{value:111,done:false} console.log(itertor.next())//{value:222,done:false} console.log(itertor.next())//{value:333,done:false} console.log(itertor.next())//{value:444,done:false} console.log(itertor.next())//{value:undefined,done:true} for(let v of arr1.values()){ console.log(v) } //111 //222 //333 //444</code></pre> <p>25、arr.includes(v,start):判断数组中是否包含该元素,返回true or false 26、Array.isArray(obj):判断是不是数组 27、* <code>reduce()</code></p> <pre><code>arr = ['a','b','c'] arr.reduce(function(accumulator,curVal,curIndex,arr){ // code },initData)</code></pre> <blockquote> <p>arr不能为空数组,否则不执行回调 accumulator:累计值,上一次回调返回的值或initData initData:reduce的第一项,可为空数组[];若不写则无第一项的输出,arr的reduce回调第0项为空,</p> </blockquote>

页面列表

ITEM_HTML