js 小记

记录一些 巧妙使用数组、字符串方法的方式

1.数组合并

var arr1=[1,2,3];
var arr2=[4,5,6];
[].push.apply( arr1, arr2 ); //利用apply可以传入数组参数的特点
console.log(arr1); //[1,2,3,4,5,6];

2集合合并

var lis = document.getElementsByTagName("li");
var ps = document.getElementsByTagName("p");
var arr = [];
[].push.apply(arr,lis); // 集合不能使用数组的方法,但是集合本身是伪数组,可以遍历,所以可以当做参数传入
[].push.apply(arr,ps);
[...lis, ...p]; // ES6

3.字符串转数组

var arr = 'red,green,blue,yellow'.split(",");
console.log(arr); //['red','green','blue','yellow']

4.计算总和

方法1
var arr = [1,2,3,4,5];
var sum = arr.reduce(function (first, second){
    return first + second;
});
console.log(sum); //15
方法2
var arr = [1,2,3,4,5];
var sum = eval(arr.join("+"));
console.log(sum); //15

5.二维数组 指定成员 求最大值

var data = [ [ 10, 20 ], [ 15, 13 ], [ 17, 30 ], [ 30, 10 ], [ 20, 15 ] ];
var dataMax = Math.max.apply(null, data.map( function ( v ) { return v[ 0 ]}));

6.插一条正则

1.转换日期
var date = '1991-1-19'.replace( /(\d+)-(\d+)-(\d+)/, '$1年$2月$3日');
2.简单去重
var str = 'aaaabbb....ccdddd....dd...fff...不不不';
newStr = str.replace(/\./g, ''); //去除点符号;
newStr = str.replace(/(.)\1+/g, '$1');
console.log(newStr);

7.快速排序 之 函数式编程

var arr = [1, 4, 3, 2, 5, 0, -3, -1, -2];

var qs = (fn) => ([p, ...right]) => 
        p === undefined ? [] : [
            ...qs(fn)(right.filter(a => fn(a, p))), 
            p,
            ...qs(fn)(right.filter(a => !fn(a, p)))
        ]

qs((a, b) => a < b)(arr)

8.数组去重

arr.filter((v, i) => arr.indexOf(v) === i) // ES5

[...new Set(arr)] // ES6
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值