美文网首页
Array数组的基本操作(1)

Array数组的基本操作(1)

作者: ShineShao | 来源:发表于2017-06-06 18:59 被阅读0次

    数组是值的有序集合。

    数组原型

    Array.prototype.concat()  [ES3]

    (concat()方法合并两个或两个以上数组。此方法不更改现有数组,而是返回新数组)

    语法:

    var new_array = old_array.concat(value1[,value2[, ...[,valueN]]])

    实例:

    var arr1=['a','b','c'];

    var arr2=['d','e','f'];

    var arr3=arr1.concat(arr2);

    // arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]

    Array.prototype.copyWithin()  [ES6]

    (copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。target(必需):从该位置开始替换数据。start(可选):从该位置开始读取数据,默认为0。如果为负值,表示倒数。end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。)

    ( copyWithin()方法是数组的浅拷贝部分, 而数组的大小没有改变。)

    语法:

    arr.copyWithin(target)

    arr.copyWithin(target,start)

    arr.copyWithin(target,start,end)

    实例:

    ['alpha','bravo','charlie','delta'].copyWithin(2,0);

    // results in ["alpha", "bravo", "alpha", "bravo"]

    Array.prototype.entries(). [ES6]

    (entries()方法返回一个新数组的迭代器对象包含数组中的每个索引的键/值对。)

    语法:

    a.entries()

    实例:

    var a = ['a','b','c'];

    var iterator = a.entries();

    console.log(iterator.next().value);  // [0, 'a']

    console.log(iterator.next().value);  // [1, 'b']

    console.log(iterator.next().value);  // [2, 'c']

    var a = ['a','b','c'];

    var iterator = a.entries();

    for(lete of iterator){

        console.log(e);

    }// [0, 'a']// [1, 'b']// [2, 'c']

    Array.prototype.every()  [ES5]

    (every方法是数组的逻辑判定:对数组元素应用指定对函数进行判定,返回true 或 false)

    语法:

    arr.every(callback[,thisArg])

    实例:

    functionisBigEnough(element,index,array){

           return element >= 10;

    }

    [12,5,8,130,44].every(isBigEnough);// false

    [12,54,18,130,44].every(isBigEnough);// true

    [1,2,3,4,5,6,7,8].every(function(x){ x < 10; } ) //true 所有值<10

    Array.prototype.fill()  [ES6]

    (fill()方法填充数组中的所有从一开始指数结束指标与静态值的元素)

    语法:

    arr.fill(value)

    arr.fill(value,start = 0)

    arr.fill(value,start = 0,end = this.length)

    (value 值是必须的;start 开始位置 ,可选、默认值为;end结束位置,可选、默认值为数组的length)

    实例:

    varnumbers=[1,2,3]

    numbers.fill(1);

    [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}

    Array.prototype.filter()  [ES5]

    (filter()方法返回的是数组的一个子集<也是一个数组,新数组>,传递的函数是用来逻辑判定的)

    语法:

    var newArray = arr.filter(callback[,thisArg])

    ( element:数组中正在处理的当前元素。index:数组中正在处理的当前元素的索引。array:当前数组。thisArg:fn函数中this指向.)

    实例:

    var words = ["spray","limit","elite","exuberant","destruction","present"];

    var longWords = words.filter(function(word){return word.length > 6;})

    // Filtered array longWords is ["exuberant", "destruction", "present"]

    Array.prototype.find()  [ES6]

    (find() 方法返回符合规定的函数的数组的第一个元素的值。否则返回 undefinded)

    语法:

    arr.find(callback[,thisArg])

    ( element:数组中正在处理的当前元素。index:数组中正在处理的当前元素的索引。array:当前数组。thisArg:fn函数中this指向.)

    实例:

    function isBigEnough(element){

         returnelement>=15;

    }

    [12,5,8,130,44].find(isBigEnough);  // 130

    function isPrime(element,index,array){

        var start=2;

        while(start<=Math.sqrt(element)){

            if(element%start++<1){

                 returnfalse;

            }

        }

         return element>1;

    }

    console.log([4,6,8,12].find(isPrime));  // undefined, not found

    console.log([4,5,8,12].find(isPrime));  // 5

    Array.prototype.findIndex()  [ES6]

    (findIndex()方法和find()很相似,findIndex(0) 的返回值是数组的索引,返回满足条件的数组的第一个元素的索引。否则返回 -1)

    语法:

    arr.findIndex(callback[,thisArg])

    ( element:数组中正在处理的当前元素。index:数组中正在处理的当前元素的索引。array:当前数组。thisArg:fn函数中this指向.)

    实例:

    function isBigEnough(element){

        return element >= 15;

    }

    [12,5,8,130,44].findIndex(isBigEnough);

    // index of 4th element in the Array is returned,

    // so this will result in '3'

    functionis Prime(element,index,array){

          var start = 2;

          while(start <= Math.sqrt(element)) {

                if(element%start++<1){

                       return false;

                 }

           }

            return element>1;

     }

    console.log([4,6,8,12].findIndex(isPrime));   // -1, not found

    console.log([4,6,7,12].findIndex(isPrime));   // 2

    Array.prototype.forEach()  [ES5]

    (foreach()方法用来遍历数组中的每个元素)

    语法:

    arr.forEach(functioncallback(currentValue, index, array) {

         //your iterator

    }[,thisArg]);

    (currentValue :数组中正在处理的当前元素的值。index:数组中正在处理的当前元素的索引。 array:当前数组。thisArg:回调执行时,使用此值(即referenceobject))

    实例:

    vara=['a','b','c'];

    a.forEach(function(element){  

          console.log(element);

    });

    //a// b// c

    (其实数组的遍历有很多方法   for...of..  、for...in.. 等都可以)

    Array.prototype.includes()  [ES7]

    (includes()判定数组包含某元素,返回true或false适当。)

    语法:

    arr.includes(searchElement)

    arr.includes(searchElement,fromIndex)

    (searchElement:搜索的元素,fromIndex:开始搜索元素的索引,从该位置开始搜索)

    实例:

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

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

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

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

    [1,2,NaN].includes(NaN);// true

    **以上是javascript数组的简单操作,具体以MDN为标准

    相关文章

      网友评论

          本文标题:Array数组的基本操作(1)

          本文链接:https://www.haomeiwen.com/subject/hlsitxtx.html