zoukankan      html  css  js  c++  java
  • JavaScript -- 常用的数组及字符串方法

    数组

    var arr= new Array();
    
    arr.push();     //在数组尾部添加一个元素,返回新的长度     *原数组发生变化
    
    arr.pop();      //删除最后一个元素,返回的是被删除的元素    *原数组发生变化
    
    arr.unshift();      //在头部添加一个元素,返回长度      *原数组发生变化
    
    arr.shift();        //删除数组第一个元素,返回被删除的元素  *原数组发生变化
    
    arr.concat();     //添加元素或数组,返回一个一维数组,可用来合并数组
    
    arr.join();     //将数组内的元素用()内的符号连接起来返回一个字符串
    
    arr.reverse();      //颠倒数组中的元素              *原数组发生变化
    
    arr.sort();     //将数组元素排序,如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序  *原变
    
    arr.slice(x,y);     //	返回数组中的一部分,根据下标,前包后不包 
    
    arr.splice();
    //例
    arr.splice(x);    //数组保留x位,其余的删除
    arr.splice(2,0,100);  //在arr第2个元素后面,删除0个,插入100,返回的是被删除的元素
    
    

    es6新增

    (1)复制数组

    // 写法一
    const a2 = [...a1];
    // 写法二
    const [...a2] = a1;
    

    (2)合并数组

    // ES5
    [1, 2].concat(more)
    // ES6
    [1, 2, ...more]
    

    (3)字符串

    扩展运算符还可以将字符串转为真正的数组。

    [...'hello']
    // [ "h", "e", "l", "l", "o" ]
    

    Array.of方法用于将一组值,转换为数组

    Array.of基本上可以用来替代Array()或new Array(),并且不存在由于参数不同而导致的重载。它的行为非常统一。

    Array.of(3, 11, 8) // [3,11,8]
    

    copyWithin在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

    [1, 2, 3, 4, 5].copyWithin(0, 3)
    // [4, 5, 3, 4, 5]
    
    // -2相当于3号位,-1相当于4号位
    [1, 2, 3, 4, 5].copyWithin(0, -2, -1)
    // [4, 2, 3, 4, 5]
    

    find,findIndex

    数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

    [1, 4, -5, 10].find((n) => n < 0)   //-5
    
    [1, 5, 10, 15].find(function(value, index, arr) {
      return value > 9;
    }) // 10
    

    另外,这两个方法都可以发现NaN,弥补了数组的indexOf方法的不足。

    [NaN].indexOf(NaN)
    // -1
    
    [NaN].findIndex(y => Object.is(NaN, y))
    // 0
    

    fill使用给定值,填充一个数组。

    ['a', 'b', 'c'].fill(7)
    // [7, 7, 7]
    
    new Array(3).fill(7)
    // [7, 7, 7]
    

    fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。

    ['a', 'b', 'c'].fill(7, 1, 2)
    // ['a', 7, 'c']
    

    数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

    entries(),keys()和values()——用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。

    for (let index of ['a', 'b'].keys()) {
      console.log(index);
    }
    // 0
    // 1
    
    for (let elem of ['a', 'b'].values()) {
      console.log(elem);
    }
    // 'a'
    // 'b'
    
    for (let [index, elem] of ['a', 'b'].entries()) {
      console.log(index, elem);
    }
    // 0 "a"
    // 1 "b"
    
    

    includes表示某个数组是否包含给定的值

    [1, 2, 3].includes(2)     // true
    [1, 2, 3].includes(4)     // false
    [1, 2, NaN].includes(NaN) // true
    

    该方法的第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。

    [1, 2, 3].includes(3, 3);  // false
    [1, 2, 3].includes(3, -1); // true
    

    字符串

    var str=new String("abvdefg");
    
    str.indexOf('abc');   //返回指定字符第一次出现的位置,没有返回-1
    
    str.lastIndexOf('w');    //返回指定字符最后一次出现的位置,没有返回-1
    
    str.slice(startIndex,endIndex);     //返回匹配到的字符串,前包后不包
    
    str.substr(startIndex,length);      //返回一个字符串
    
    str.charAt(x);      //返回指定索引位置的字符
    
    str.charCodeAt();   //返回在指定的位置的字符的 Unicode 编码。
    
    str.split();        //把字符串分割为字符串数组,()内可写正则表达式('')将每个元素按照数组中的每个元素分割
    
    str.toLowerCase();      //把字符串转换为小写。
    
    str.toUpperCase();      //把字符串转换为大写
    
    

    es6新增

    //for...of字符串遍历器接口
    
    for(let item of str){
    	console.log(item)
    }
    
    str.includes(x)     //返回布尔值,表示是否找到了参数字符串。
    
    str.startsWith(x)       //返回布尔值,表示参数字符串是否在原字符串的头部。
    
    str.endsWith(x)     //返回布尔值,表示参数字符串是否在原字符串的尾部。
    
    这三个方法都支持第二个参数,表示开始搜索的位置,参数如果是小数,会被取整。。
    
    如:str.startsWith('f', 2) // true
    
    使用第二个参数x时,endsWith的行为与其他两个方法有所不同。它针对前x个字符,而其他两个方法针对从第x个位置直到字符串结束。
    
    str.repeat(x);      //返回一个新字符串,表示将原字符串重复x次。
    
    padStart(),padEnd
    如果某个字符串不够指定长度,会在头部或尾部补全,一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
    
    'x'.padStart(4, 'ab') // 'abax'
    'x'.padEnd(5, 'ab') // 'xabab'
    
    如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
    
    'xxx'.padEnd(2, 'ab') // 'xxx'
    
    如果省略第二个参数,默认使用空格补全长度。
    
    'x'.padStart(4) // '   x'
    
    
    如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
    'abc'.padStart(10, '0123456789')  //// '0123456abc'
    
    另一个用途是提示字符串格式。
    '12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
    '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
    
  • 相关阅读:
    【已解决】github中git push origin master出错:error: failed to push some refs to
    好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题
    THINKPHP 5.0目录结构
    thinkphp5.0入口文件
    thinkphp5.0 生命周期
    thinkphp5.0 架构
    Django template
    Django queryset
    Django model
    Python unittest
  • 原文地址:https://www.cnblogs.com/adoctors/p/9064219.html
Copyright © 2011-2022 走看看