总结了一些比较常用的数据结构以及对应的API
常用数据结构 Array js数组里面的元素类型可以都不一样
var a=new Array ()var a=[1 ,2 ,3 ]a.length Array .isArray(a) a.toString() a.push(value,vlaue....) pop() shift() unshift(value) join() concat() reverse() slice(start_index, upto_index); splice(index, count_to_remove, addElement1, addElement2, ...); sort() map() forEach() filter() some() every() reduce() reduceRight() indexOf(s) lastIndexOf(s)
map a.map((x )=> { return -x; }) a.map(function (x ) { return Math .abs(x) })
forEach a.forEach((x,y,z )=> { console .log(x,y,z) })
filter arr.filter(x => { if (x==='2' ){ return true } else { return false } })
some/every arr.some(x => { if (x==='2' ){ return true } else { return false } }) arr.every(x => { if (x==='2' ){ return true } else { return false } })
reduce t.reduce((x,y,z,w )=> { console .log(z) return x*y; }) t.reduce((x,y,z,w )=> { console .log(z) return x*y; },0 ) 0
String var s=new String ()var s="12345" var str=String .fromCharCode(97 ); s.length s.chatAt(index) s.concat(s2) s.slice(start,end) s.substring(start,end) s.substr(start,length) s.indexOf(s) s.lastIndexOf() s.trim() s.toLowerCase() s.toUpperCase() s.localeCompare(s2) s.match(regexp) s.search() s.replace(oldValue,newValue) s.split()
Map var m = new Map (); m.set('Adam' , 67 ); m.has('Adam' ); m.get('Adam' ); m.delete('Adam' ); for ([key,value] of map){ console .log(key,value) }
Set var s1 = new Set (); var s2 = new Set ([1 , 2 , 3 , 3 ]); s.add(4 ); s; s.delete(3 ); s; s.size; s.has(2 );
常用方法 进制转换 var value = parseInt (12 ).toString(2 ); 如果要转换为其他进制,替换掉就好了
判断变量类型 判断变量类型一般用typeof就可以了
声明相同元素数组 new Array(100).fill(1)
数组长度为100,每个元素都是1
声明固定长宽的二维数组 let arr = new Array (10 );for (let i = 0 ;i < arr.length; i++){ arr[i] = new Array (10 ).fill(0 ); }
遍历Array
、Map
、Set
Array
可以使用下标,Map
和Set
不能使用下标,ES6引入了iterable类型,Array
,Map
,Set
都属于iterable类型,它们可以使用for…of循环来遍历
let a = ['A' , 'B' , 'C' ];let s = new Set (['A' , 'B' , 'C' ]);let m = new Map ([[1 , 'x' ], [2 , 'y' ], [3 , 'z' ]]);for (let x of a) { log(x); } for (let x of s) { log(x); } for (let x of m) { log(x[0 ] + '=' + x[1 ]); }
字符与ASCII码互转 将字符转为ascii码
let char='a' ;let num=str.charCodeAt();
将ascii码转为对应字符
let num=97 ;let char=String .fromCharCode(num);
小数取整 向上取整Math.ceil(3/2) //2
向下取整Math.floor(3/2) //1
四舍五入取整Math.round(3/2) //2
数组索引处添加/删除 都是对原数组进行操作 删除arr.splice(index, 1)
添加arr.splice(index, 0, content)