/*用递归的方式计算出1-->100的总值*/ function sum(num) { if(num == 1) { return 1; } return num + sum(num - 1); } console.log(sum(100))
统计重复次数的方法:
function chachong (str){ var obj = {}; str.sort(); for(var i = 0; i < str.length;){ var con = 0; for(var j = i; j<str.length; j++){ if(str[i] === str[j]){ con++ } } obj[str[i]]=con; i += con; } console.log(obj); }
var a = ['嘿嘿','嘿嘿','哈哈哈','哈哈哈','呼呼呼呼'] chachong(a)
关于数组去重复的几种方法:
先创建一个数组吧:
var arr=['12','32','89','12','12','78','12','32'];
// 最简单数组去重法 function unique1(array){ var n = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ //遍历当前数组 if (n.indexOf(array[i]) == -1) n.push(array[i]); } console.log(n)//查看数组 return n; } arr=unique1(arr);
//es6方法数组去重 arr=[...new Set(arr)]; console.log(arr)
//es6方法数组去重,第二种方法 function dedupe(array) { return Array.from(new Set(array)); //Array.from()能把set结构转换为数组 } console.log(dedupe(arr))
// 速度最快, 占空间最多(空间换时间) function unique2(array){ var n = {}, r = [], type; for (var i = 0; i < array.length; i++) { type = typeof array[i]; if (!n[array[i]]) { n[array[i]] = [type]; r.push(array[i]); } else if (n[array[i]].indexOf(type) < 0) { n[array[i]].push(type); r.push(array[i]); } } return r; } console.log(unique2(arr))
//数组下标判断法 function unique3(array){ var n = [array[0]]; //结果数组 for(var i = 1; i < array.length; i++) { //从第二项开始遍历 if (array.indexOf(array[i]) == i) n.push(array[i]); } return n; } console.log(unique3(arr))
关于js的for循环遍历:
var str =[{'name':'zs','age':18},{'name':'ls','age':19}
console.log(str)
console.log('-----------------------------') console.log('es5:for循环')
//len=str.length : 将长度存到缓存中去,这样每次循环时,就不会再去读取数组长度 for(var i = 0,len=str.length; i<str.length;i++){ console.log(str[i]) } console.log('-----------------------------') console.log('es6: for循环(in)') for(var i in str){ console.log(str[i]) } console.log('------------------------------') console.log('es6:for循环(of)') for(var i of str){ console.log(i) }
console.log('---------------------------------')
console.log('通过$.each进行循环遍历')
$.each(str,function(index,item){
console.log(index+':'+JSON.stringify(item))
})
console.log('---------------------------------')
console.log('通过forEach进行循环遍历')
str.forEach(function(item,index){
console.log(index+':'+JSON.stringify(item))
})
console.log('---------------------------------')
console.log('通过map进行循环遍历')
str.map(function(item,index){
console.log(index+':'+JSON.stringify(item))
})
js进制转换方法:
//num:10进制数字, radix:要转换的进制(10进制转成2~36和62进制可以实现)
function conversion(num, radix) { if(radix >= 2 && radix <= 36) { return num.toString(radix); } else if(radix == 62) { var chars = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ'.split(''), radix = chars.length, qutient = +num, arr = []; do { mod = qutient % radix; qutient = (qutient - mod) / radix; arr.unshift(chars[mod]); } while (qutient); return arr.join(''); } else { console.log('请输入2~36之间的进制数,或者输入62,转成62进制') return null; } }
js操作JSON:
1.将data转成data2
var data = [{ 'name': 'zhangsan', age: 18 }, { 'name': 'lisi', age: 19 }, { 'name': 'wangwu', age: 20 } ] var data2 = [ ['name','age'], ['zhangsan',18], ['lisi',19],
['wangwu',20]
]
具体实现:调用format()方法即可;
function format(arr) { var result = []; for(var x in arr) { var item = []; for(var i in arr[x]) { item.push(arr[x][i]); } result.push(item); } //Object.keys(arr[arr.length-1]):获取到key值 result.unshift(Object.keys(arr[arr.length - 1])) return result; }