javascript-Array数组总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript-Array数组总结相关的知识,希望对你有一定的参考价值。

1.构造函数

    new Array();
    new Array(size);
    new Array(ele0,ele1,ele2,...,elen);

参数

  size:设定数组元素个数,返回数组的length等于size

2.属性

  length:等于数组中最后一个元素的序号加一,改变length值会裁减或扩充数组.

3.方法

  concat():把元素衔接到数组中

    var a=[1,2,3];
    a.concat(4,5);                    //返回[1,2,3,4,5]
    a.concat([4,5]);                //返回[1,2,3,4,5]
    a.concat([4,5],[6,7]);            //返回[1,2,3,4,5,6,7]
    a.concat(4,[5,[6,7]]);            //返回[1,2,3,4,5,[6,7]]

  every():测试断言函数是否对每个数组元素都为真

//检测数组 ages 的所有元素是否都大于 18 :
var ages = [32, 33, 16, 40];

function checkAdult(age) {
    return age >= 18;
}

function myFunction() {
    document.getElementById("demo").innerhtml = ages.every(checkAdult);
}

    输出结果为:false

  some():测试是否至少有一个数组元素能断言函数为真,返回布尔类型及true/false

    var a = [1,2,3,4,5];
    a.some(function(x){return x%2===0;})// =>true
    a.some(isNaN)// =>false

  filter():返回满足断言函数的数组元素

// Define a callback function. 
function CheckIfPrime(value, index, ar) { 
    high = Math.floor(Math.sqrt(value)) + 1; 
 
    for (var div = 2; div <= high; div++) { 
        if (value % div == 0) { 
            return false; 
        } 
    }  
    return true; 
} 
 
// Create the original array. 
var numbers = [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53]; 
 
// Get the prime numbers that are in the original array.  
var primes = numbers.filter(CheckIfPrime); 

document.write(primes); 
// Output: 31,37,41,43,47,53
    var b = [5,4,3,2,1];
    smallvalues = b.filter(function(x){regurn x < 3}); //[2,1]
    everyother = b.filter(function(x,i){return i%2 == 0}); //[5,3,1]

  forEach():从头至尾遍历数组 三个参数(数组元素,数组元素的索引,数组元素本身)

    var data = [1,2,3,4,5];
    //计算元素和值
    var sum = 0;
    data.forEach(function(value){sum += value;}); //sum => 15
    //每个数组元素的值加1
    data.forEach(function(v,i,a){a{i} = v + 1;}); //data => [2,3,4,5,6]

  indexOf()/lastIndexOf():在数组中查找匹配元素的索引下标 2个参数(搜索值,开始索引的下标);不可以带function,未找到返回 -1 

    //在数组中插好所有出现的x,并返回一个包含匹配索引的数组
    function finally(a,x){
    var results = [], //
        len = a.length,//
        pos = 0;//
    while(pos < len){
        pos = a.indexOf(x,pos);
        if(pos === -1) break;
        results.push(pos);
        pos = pos +1;
    }    
    return results;
  }

  join():将数组的所有元素转化为字符串,并衔接起来(是split()的逆向操作)

  var a = [1,2,3]; 
  a.join();    // => "1,2,3"
  a.join(" ");    //=> "1 2 3"
  a.join("");    //=> "123"
  var b = new Array(10);
  b.join("-");    //=>"---------":9个连续的字符串

  split():将字符串分割成若干块来创建一个数组 参数(拆分根据的字符,拆分后的数组的保留位数)

    "2:3:4:5".split(":")    //将返回["2", "3", "4", "5"]
    "|a|b|c".split("|")    //将返回["", "a", "b", "c"]
    //把单词分割为字母,或者把字符串分割为字符,可使用下面的代码:
    "hello".split("")    //可返回 ["h", "e", "l", "l", "o"]
    //若只需要返回一部分字符,请使用 howmany 参数:
    "hello".split("", 3)    //可返回 ["h", "e", "l"]

  map():将调用的数组的每个元素传递给指定的函数,并返回一个数组,他包含该函数的返回值 参数(function(数组的元素))

    a[1,2,3];
    b = a.map(function(x){
        return x*x;
    });

  pop():删除并返回数组的最后一个元素,减小数组长度

  shift():把数组的第一个元素从其中删除,并返回第一个元素的值。减小数组长度

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()
console.log(fruits);
//结果:Banana, Orange, Apple

  unshift():在数组头部插入元素并把已存在的元素向后移动 参数(value,...,n) 返回值:数组的新长度 

    var a = [];
    a.unshift(1);// =>a:[1]        返回:1
    a.unshift(22);// =>a:[22,1]        返回:2
    a.shift();// =>a:[1]        返回:22
    a.unshift(33,[4,5]);// =>a:[33,[4,5],1]        返回:3

  push():在数组尾部添加一个或多个严肃,并返回数组新的长度

    var stack = [];
    stack.push(1,2);    //stack: [1,2]
    stack.pop();        //stack: [1]
    stack.push(3);        //stack: [1,3]
    stack.pop();        //stack: [1]
    stack.push([4,5]);    //stack: [1,[4,5]]
    stack.pop();        //stack: [1]
    stack.pop();        //stack: []

  reduce():从数组的元素中,计算出一个值 参数(包含返回值得函数,初值[临时使用,第一次使用初值,二次以后使用第一个参数的返回值替换])

  reduceRight():同上,不过顺序相反,从右至左处理数组

    var a = [1,2,3,4,5];
    var sum = a.reduce(function(x,y){return x+y},0);//数组求和
    var produce = a.reduce(function(x,y){return x*y },1);//数组求积
    var max = a.reduce(function(x,y){return x>y?x:y});//求最大值

  reverse():在原数组中颠倒数组元素的顺序

    var a = [1,2,3];
    a.reverse().join(); // => 3,2,1 现在的数组a=[3,2,1]

  sort():将数组排序并返回排序后的数组,不带参数调用sort()时默认按照字母排序

    var a = new Array("banana","cherry","apple");
    a.sort();
    var s = a.join(",");//=>s == "apple,banana,cherry"

  slice():返回数组的一部分 参数(开始位置,结束位置[不包含结束位置]) 若只有一个参数则从参数位置开始到数组结尾的所有元素 负数则是倒数,比如-1是倒数第一个,-3是倒数第三个

    var a = [1,2,3,4,5];
    a.slice(0,3);// =>[1,2,3]
    a.slice(3);    // =>[4,5]
    a.slice(1,-1);// =>[2,3,4]
    a.slice(-3,-2);// =>[3]

  splice():插入,删除或替换数组元素 参数(指定插入或删除的起始位置,指定了从数组删除元素的个数,若省略则从开始位置到结尾都被删除) 返回一个由删除元素组成的数组,没有删除就返回空数组

    var a = [1,2,3,4,5,6,7,8];
    a.splice(4);//=>返回[5,6,7,8];a是[1,2,3,4]
    a.splice(1,2);//=>返回[2,3];a是[1,4]
    a.splice(1,1);//=>返回[4];a是[1]

      前两个参数指定了需要删除的数组元素,第三N多个参数指定了需要插入到数组中的元素,从第一个参数指定的位置开始插入

    var a = [1,2,3,4,5];
    a.splice(2,0,‘a‘,‘b‘);// =>返回[];a是[1,2,‘a‘,‘b‘,3,4,5]
    a.splice(2,2,[1,2],3);// =>返回[‘a‘,‘b‘]; a是[1,2,[1,2],3,3,4,5]

  toLocaleString():将数组转换为本地化字符串

  toString():将数组转化为字符串

 

 

  

 

以上是关于javascript-Array数组总结的主要内容,如果未能解决你的问题,请参考以下文章

js教程系列24:javascript-Array

几个关于js数组方法reduce的经典片段

js数组遍历方法总结

几个关于js数组方法reduce的经典片段

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法