有趣的JS之JS小技巧

有趣的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)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值