您的位置:首页 > Web前端 > JavaScript

有趣的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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript