美文网首页
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