多维数组转一维数组
1 2
| var arr = [1,[[4,5,6],2,[[[7,8,9]]],3]]; arr = arr.toString().split(",").map(v=>Number(v));
|
递归算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var arr = [1,[[4,5,6],2,[[[7,8,9]]],3]]; var newArr = [];
function exe(_arr){ _arr.forEach((v,i)=>{ if(Array.isArray(v)){ exe(v); }else{ newArr.push(v); } }) }
exe(arr);
|
求和且查询下标
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
1 2 3 4 5 6 7 8 9 10 11 12 13
| var twoSum = function (nums, target) { var cloneNums = nums.map(function (v) { return v; }); var indexs = []; nums.forEach(function (v, i) { cloneNums.forEach(function (_v, _i) { if (_v + v === target && i !== _i) { indexs = [i, _i]; } }); }); return indexs; }; twoSum([3, 3], 6);
|
千分表示法
1 2 3 4 5 6 7 8 9 10 11 12
| var num = 9123123456789.9; var numFloot = num.toString().match(/\.\d+/)[0]; var intNum:number = Math.floor(num); var intNumStr:string = intNum.toString(); var reverseStr:string = intNumStr.split("").reverse().join(""); reverseStr = reverseStr.match(/\d{3}/g).map(v=>v+",").join(""); if(intNumStr.length%3!==0){ reverseStr+=intNumStr[0]; } var newStr:string|number = reverseStr.split("").reverse().join("") + numFloot; newStr = newStr.replace(/^,/,""); console.log(newStr);
|
查询url地址的查询语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Param { constructor(key, value) { this.key = key; this.value = value; } } var result = []; var main = function (str) { let search = str.match(/\?.+/)[0]; search = search.replace(/\?/, ""); let searchs = search.split("&"); searchs.forEach(v => { let _arr = v.split("="); result.push(new Param(_arr[0], _arr[1])); }); return result; }; var str = 'http://s.weibo.com/weibo/Aralic?topnav=1&wvr=6&name=jonny&age=34&id=3'; console.log(main(str));
|
返回契波那契数列的下标返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
function getNthFibonacci(count) { var fibonacci = []; fibonacci[0] = 1; fibonacci[1] = 1; fibonacci[2] = 2; if (count >= 2) { for(let i = 3;i<=count;i++){ fibonacci[i%3] = fibonacci[(i - 1)%3] + fibonacci[(i - 2)%3]; } } return fibonacci[count%3]; }
|