js字符串、数组常用方法、数组去重、排序

数组去重

    let arr = [ 1, 2, 2, 1, 3, 4, 5, 5, 3, 4];

    // 第一种方法
    let newArr = Array.from(new Set(arr));
    console.log(newArr);
    // newArr:[1, 2, 3, 4, 5];

    // 第二种方法
    let newArr1 = [...new Set(arr)];    // 扩展运算法 ...
    console.log(newArr1)
    // newArr1:[1, 2, 3, 4, 5];

    // 第三种方法
    let newArr2 = [ ];
    arr.forEach(item => newArr2.indexOf( item ) === -1 ? newArr2.push ( item ) : null)  // instanceOf:检测某个实例属于这个类
    console.log(newArr2)
    // newArr2:[1, 2, 3, 4, 5];

    // 第四种方法 filter 过滤器法
    // 第一种类型
    const map = new Map();
    arr = arr.filter(v => !map.has(v) && map.set(v, 1));
    console.log(arr) // [1, 2, 3, 4, 5]
    // 第二种类型
    let arrObj = [{ num: 1 }, { num: 5 }, { num: 1 }]
    const map1 = new Map();
    arrObj = arrObj.filter(v => !map1.has(v.num) && map1.set(v.num, 1));
    console.log(arrObj) // [{ num: 1 }, { num: 5 }]

字符串常用的方法

Var str =  “ a   b   b   c   a    l    g    i   d   k     j     g      I     d   g     e    h     i     g    j     l    d     f  ”

                 0   1    2   3   4   5   6   7   8   9   10   11   12  13  14   15  16  17  18  19  20  21  22

1、indexOf();

返回指定字符串第一次出现的位置。

     str.indexOf(‘a’);     结果是:0

2、lastIndexOf();

返回指定字符串最后一次出现的位置。

     str.lastIndexOf(‘f’);     结果是:22

3、subString();

提取字符串中两个指定索引号之间的字符(两个索引不能为负值)

str.subString(0,5);      结果是:abbca

4、slice();

提取字符串中两个指定索引号之间的字符(索引可以为负值,-1就是倒数第二位)

     str.slice(0,-5);   结果是:abbcalgidkjgidgehi

5、charAt();

     返回指定索引的字符

     str.charAt(1);    结果是:b

6、concat();

     链接两个或多个字符串,返回链接后的新字符串。

     var str2 = “1”;

     var str3 = Str.concat(str2);  

log(str3); 结果是:abbcaigidkjgidgehigjidf1

7、split();

     把字符串分割为子字符串数组。

     str.split(); 结果是:[“abbcaigidkjgidgehigjidf”]

8、toString();

     返回字符串对象,比如把数字转换成字符串对象。

9、trim();

     移除字符串首位空格,经常在对input 和textarea的值做判断时用到。

10、toLoverCase();

     把字符串准换成小写的。

11、toUpperCase();

     把字符串准换成大写的。

12、match();

     找到一个或者多个子串或者正则表达式的匹配。

13、replace();

     替换指定子串或者与正则表达式匹配的子串。

14、search();

     检索指定子串或者与正则表达式匹配的值,返回的值是数字。

数组的常用方法

  1. shift();

把数组的第一个元素删除,并返回第一个元素的值。

var movePos = [1,2];        movePos.shift();

log(movePos);        结果是:[2]

log(movePos.length);      结果是:1

  1. concat();

用于连接两个或多个数组,并返回一个新数组,新数组是将参数添加到原数组中构成的。

var a = [1, 2];

var b = a.concat(4,5);

vog(b);     结果是:[1,2,4,5]

var ar1 = [7,8];

var ar2 = [1111,2222];

var ar3 = b.concat(ar1,ar2);

log(ar3);        结果是:[1,2,4,5,7,8,1111,2222]

log(b.length);    结果是:4

log(ar3.length);      结果是:8

  1. join();

用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分割的。

返回一个字符串,该字符串是通过把arrayObject的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成的。

var arr = [11,22];

var brr = arr.join(“+”);

log(brr);        结果是:11 + 22

  1. pop();

用于删除并返回数组的最后一个元素,如果数组为空,则把数组的长度减1。

var a = [11,22,33];

var arr = a.pop();

log(arr);        结果是:33

  1. push();

可向数组的末尾添加一个或多个元素,并返回新的长度,(用来改变数组的长度)。

var a = [1,2];

a.push('111','222','ddd');

log(a);      结果是:[1,2,’111’,’222’,’ddd’]

log(a.length);     结果是:5

  1. reverse();

方法用于颠倒数组中元素的顺序。

var a = [1,2,3];

var b = a.reverse();

log(b);      结果是:[3,2,1]

  1. slice();

方法可从已有数组中返回选定的元素,slice(开始位置,结束位置)

var a = [1,2,3];

var b = a.slice(1,3);

log(b);      结果是:[2,3]

  1. splice();

方法向/从数组中添加/删除项目,然后返回被删除的项目元素。

var arr = [1,2,3,4];

arr.splice(2,0,5,6);        从索引2的位置删除0个,添加5,6

log(arr);        结果是:[1,2,5,6,3,4]

splice() 方法可删除从index处开始的零个或多个元素,并且用参数列表中声名的一个或多个值来替换那些被删除的元素。

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

arr.splice(2,3,7,8);

log(arr);        结果是:[1,2,7,8,6]

  1. unShift();

方法可向数组的开头添加一个或多个元素,并返回新的长度。

var a = [11,22,33,44];

a.unShift(‘555’);

log(a);      结果是:[‘555’,11,22,33,44]

  1. sort();

按指定的参数对数组进行排序

var a = [9,2,5,8,6];

a.sort();

log(a);       结果是:[2,5,6,8,9]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN_33901573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值