zoukankan      html  css  js  c++  java
  • Array

    let arr=['  xixi ', 'll ll','sdsds '];

    数组长度 length

    arr.length;  // 3

    遍历数组 forEach

    arr.forEach(function (item, index, array) {
        console.log(item, index);
    });  
    /*  
      xixi  0
    ll ll 1
    sdsds  2
    */

    添加元素到数组末尾 push

    arr.push('biu');

    删除数组末尾的元素 pop

    arr.pop();

    删除数组最前面的元素 shift

    arr.shift();

    添加元素到数组头部 unshift

    arr.unshift('hhh1');
    arr.forEach(function (item, index, array) {
        console.log(item, index);
    });
    /*
    hhh1 0
    ll ll 1
    sdsds  2
    */

    找出某个元素在数组中的索引,否则返回-1 indexOf

    arr.indexOf('sdsds '); // 2
    arr.push('hhh2','3','4');
    arr.forEach(function (item, index, array) {
        console.log(item, index);
    });
    /*
    hhh1 0
    ll ll 1
    hhh2 2
    3 3
    4 4
    */

    返回某个元素在数组中的索引,从指定位置开始向后查找,否则返回-1,indexOf

    arr.indexOf(searchElement, fromIndex);

    返回指定元素在数组中最后一个索引,从后往前查找,不存在返回-1, lastIndexOf

    arr.lastIndexOf(searchElement[, fromIndex = arr.length - 1]);

    通过索引删除某个元素 splice(开始,数量,添加进的元素)

    let inx=arr.indexOf('3');
    arr.splice(inx,1); // ["3"]
    arr.forEach(function (item, index, array) {
    console.log(item, index);
    });
    /*
    hhh1 0
    ll ll 1
    hhh2 2
    4 3
    */

    从一个索引位置删除多个元素 splice

    arr.push('7','290w','0212','2ss','22cdsd');
    console.log(arr); // ["hhh1", "ll ll", "hhh2", "4", "7", "290w", "0212", "2ss", "22cdsd"]
    let ind=3; //索引开始位置
    let n=3; //总共删除几个元素
    let removeitems=arr.splice(ind,n);
    console.log(arr); // ["hhh1", "ll ll", "hhh2", "0212", "2ss", "22cdsd"]
    console.log(removeitems); //["4", "7", "290w"]

    删除现有元素和添加新元素来改变数组splice

    var myFish = ["angel", "clown", "mandarin", "surgeon"];
    
    //从第 2 位开始删除 0 个元素,插入 "drum"
    var removed = myFish.splice(2, 0, "drum");
    //运算后的 myFish:["angel", "clown", "drum", "mandarin", "surgeon"]
    //被删除元素数组:[],没有元素被删除
    
    //从第 3 位开始删除 1 个元素
    removed = myFish.splice(3, 1);
    //运算后的myFish:["angel", "clown", "mandarin",]
    //被删除元素数组:["surgeon"]
    
    //从第 2 位开始删除 1 个元素,然后插入 "trumpet"
    removed = myFish.splice(2, 1, "trumpet");
    //运算后的myFish: ["angel", "clown", "trumpet", "surgeon"]
    //被删除元素数组:["drum"]
    
    //从第 0 位开始删除 2 个元素,然后插入 "parrot", "anemone" 和 "blue"
    removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
    //运算后的myFish:["parrot", "anemone", "blue", "trumpet", "surgeon"]
    //被删除元素的数组:["angel", "clown"]
    
    //从第 3 位开始删除 2 个元素
    removed = myFish.splice(3, Number.MAX_VALUE);
    //运算后的myFish: ["parrot", "anemone", "blue"]
    //被删除元素的数组:["trumpet", "surgeon"]
    
    //从第1位开始删除其后所有即[1,end]的元素
    removed = myFish.splice(1);
    //运算后的myFish: ["parrot"]
    //被删除元素的数组:["anemone","blue"]

    复制一个数组 slice

    let arr2=arr.slice(); 
    arr2 //["hhh1", "ll ll", "hhh2", "0212", "2ss", "22cdsd"]

    将数组中的一部分拷贝到一个新的数组,原数组不变,slice(begin,end)不包括结束

    let arr2=["hhh1", "ll ll", "hhh2", "0212", "2ss", "22cdsd"];
    let arr3=arr2.slice(1,4);
    arr3  // ["ll ll", "hhh2", "0212"]
    arr3=arr2.slice(1); // ["ll ll", "hhh2", "0212", "2ss", "22cdsd"]

    确定传递的值是否是一个数组 isArray

    Array.isArray([1,2,3,4,3]); //true
    Array.isArray({foo: 123});// false
    Array.isArray("foobar");// false
    Array.isArray(undefined);// false

    合并两个或多个数组 concat

    let num1=[1,2,3];
    let num2=[4,5,6];
    let num3=[7,8,9];
    let num4=num1.concat(num2,num3);
    num4 // [1, 2, 3, 4, 5, 6, 7, 8, 9]
    num1 // [1, 2, 3]

    返回一个新的Array迭代器对象,该对象包含数组中每个索引的键/值对 entries

    let arr3=['p','11','qweqwe','pp','tt'];
    let iterator = arr3.entries();
    iterator //Array Iterator
    for(let e of iterator){console.log(e);}
    /*
    [0, "p"]
    [1, "11"]
    [2, "qweqwe"]
    [3, "pp"]
    [4, "tt"]
    */
    console.log(iterator.next().value); //undefined
    
    let arr=['1','2',3];
    let it=arr.entries();
    console.log(it.next().value); //[0, "1"]
    console.log(it.next().value);// [1, "2"]
    console.log(it.next().value);// [2, 3]
    console.log(it.next().value); //undefined

    测试数组所有元素是否都通过了指定函数的测试 every

    let num=[1,2,3,4,5,6,7,9,10,11];
    num.every((item,index,array) => item>0); //true
    num.every((item,index,array) => item>10); //false

    用一个固定值填充数组 fill(value,start,end)

    [1, 2, 3].fill(4)            // [4, 4, 4]
    [1, 2, 3].fill(4, 1)         // [1, 4, 4]
    [1, 2, 3].fill(4, 1, 2)      // [1, 4, 3]
    [1, 2, 3].fill(4, 1, 1)      // [1, 2, 3]
    [1, 2, 3].fill(4, -3, -2)    // [4, 2, 3]
    [1, 2, 3].fill(4, NaN, NaN)  // [1, 2, 3]
    Array(3).fill(4);            // [4, 4, 4]
    [].fill.call({length: 3}, 4) // {0: 4, 1: 4, 2: 4, length: 3}

    返回一个新数组,其中的元素通过所提供函数的测试 filter

    let filter=[2,3,4,5,10,13,23].filter((item,index,array) => item>5);
    filter //[10, 13, 23]

    返回满足测试函数的第一个元素的值,否则返回undefined find

    [2,3,10,24,232,23,1].find((item,index) => item>20); //24

    返回满足测试函数的第一个元素的索引,否则返回-1 findIndex

    [2,3,10,24,232,23,1].findIndex((item,index) => item>20); //3

    返回一个数组是否包含一个指定的值 includes

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

    从某个索引开始查询数组是否包含一个指定的值 includes

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

    将数组中的所有元素连接到一个字符串中(不会改变原数组) join

    let arr=['hello','baby','hi','girl'];
    arr.join(); //默认用‘,’连接   "hello,baby,hi,girl"
    arr.join(''); //"hellobabyhigirl"
    arr.join('-'); //"hello-baby-hi-girl"

    返回一个新的array迭代器,包含数组中每个索引的键 keys

    let arr1=['qq','pp','ww'];
    let ite=arr1.keys();
    for(let e of ite){console.log(e);}
    /*
    0
    1
    2
    */
    let arr2=[1,2,3,4,5,6,7];
    let i=arr2.keys();
    console.log(i.next()); //{value: 0, done: false}
    console.log(i.next().value); //1
    console.log(i.next().value); //2

    返回一个新的array迭代器,包含数组中每个索引的值 values

    let arr = ['w', 'y', 'k', 'o', 'p'];
    let eArr = arr.values();
    console.log(eArr.next().value); // w
    console.log(eArr.next().value); // y
    console.log(eArr.next().value); // k
    console.log(eArr.next().value); // o
    console.log(eArr.next().value); // p

    创建一个新数组,每个元素为调用函数后的结果 map

    let num=[1,2,3,4,2,1,3];
    let doublenum=num.map(x => x*2);
    doublenum //[2, 4, 6, 8, 4, 2, 6]

    对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为一个值 reduce

    let item=[1,2,3].reduce((sum,value) => sum+value, 0); // 6
    item=[[1,2],[3,4],[5,6]].reduce((a,b) => a.concat(b),[]); //[1, 2, 3, 4, 5, 6]

    接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值 reduceRight

    let flattened = [
        [0, 1], 
        [2, 3], 
        [4, 5]
    ].reduceRight((a, b) => {
        return a.concat(b);
    }, []);
    
    // flattened is [4, 5, 2, 3, 0, 1]

    颠倒数组中的元素 reverse

    let num=[1,2,3,4,5];
    num.reverse(); //[5, 4, 3, 2, 1]
    num //[5, 4, 3, 2, 1]

    测试数组中的某些元素是否通过提供函数的测试 some

    [1,2,3,4].some((item) => item>0); // true
    [1,2,3,4].some((item) => item>10); // false
    [1,2,3,4].some((item) => item>3); // true

    排序 sort

    let num=[3,4,2,4,20,1,9];
    num.sort();//  [1, 2, 20, 3, 4, 4, 9]
    num.sort((a,b) => a-b); //[1, 2, 3, 4, 4, 9, 20]
    num.sort((a,b) => b-a); //[20, 9, 4, 4, 3, 2, 1]

    返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString 方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开。toLocaleString

    let arr=['hello','welcome',123,'hh'];
    arr.toLocaleString(); // "hello,welcome,123,hh"

    返回一个字符串toString

    let arr=['hello','welcome',123,'hh'];
    arr.toString(); //"hello,welcome,123,hh"
  • 相关阅读:
    使用注解@Slf4j简化Logger的初始化
    Windows系统CPU和内存状态实时查询(Java)
    Windows下压缩包安装Mysql
    ubuntu安装IntelliJ Idea及图标创建
    【CSS】使用边框和背景
    【CSS】使用CSS选择器(第二部分)
    【CSS】使用CSS选择器
    【CSS】理解CSS
    【HTML5】使用多媒体
    【HTML5】嵌入另一张HTML文档、通过插件嵌入内容、嵌入数字表现形式
  • 原文地址:https://www.cnblogs.com/biubiuxixiya/p/8243313.html
Copyright © 2011-2022 走看看