有趣的JS之JS小技巧
2016-04-16 09:55
393 查看
有趣的JS之JS小技巧
求数组中的最大值和最小值var max = Math.max.apply(Array, [1, 5, 2, 3]); var min = Math.min.apply(Array, [4,2,8,1] );
获取一个对象的所有的key
var keys = Object.keys({a:1, b:2});//=>["a","b"]
获得一个从数字 10到20的连续数组
var arr = Array.apply(null, {length: 20+1}).map(Number.call, Number).slice(10); var arr = Object.keys(Array.apply(null, {length: 20+1})).slice(10) function range(start, end, step){ step = step || 1; return Array(end-start+1).fill().map(function(item, idx){ return start + idx * step; }); }
产生一组随机数
Array.apply(null, {length: N}).map(Function.call, Math.random);
字符串换行
var str = "hello\ world\ ";//每一行的最后添加“\”, 不会保留换行符 var str1 = `hello world`;//使用反引号(`)会保留换行符
数组求和
var arr = [1, 3, 6, 10]; var sum1 = arr.reduce(function(currentValue, item){ return currentValue + item; }); var sum2 = eval(arr.join('+'));
变量交换值
var a=1, b =2; a=[b, b=a][0];//=>a=2, b=1
数组去重
[1,2,3,4].filter(function(item, index, self){ return self.indexOf(item)===index; });
数字分段
('' + 123456).split('').reverse().map(function(item,index){ return (index != 0 && index % 3 == 0) ? (item + ',') : item; }).reverse().join(''); //123,456
数组转化成对象
[ {name: 'blabla', value: 'haha'}, {name: 'blabla2', value: 'kk'} ].reduce(function(result, item){ result[item.name] = item.value; return result; },{});//=>{blabla:'haha', blabla2: 'kk'}
字符串转化成对象
var str = 'a.b.c'; str.split('.').reverse().reduce((result, item)=>{return {[item]:result}},null)
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享