JS数组方法

js数组

1. Array.from()

    从一个类数组或可迭代对象中创建一个新的数组实例。   

 Array.from('qui'); //["q", "u", "i"]

 Array.from([1, 2, 3], x=> x + x); //[2, 4, 6]

2. Array.isArray()

    判断传入的参数是否是数组   

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

Array.isArray("quinn"); //false

3. Array.prototype.every()

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

   var array1 = [1, 3, 5, 7, 9];

   array1.every( value => (value < 40) ); //true

   array1.every( value => (value > 40 )); //false

4. Array.prototype.filter()

    创建一个新数组,其包含通过所提供函数实现的测试的所有元素(其实也就是按回调函数传入的条件对数组进行过滤)。   

var array1 = [1, 4 ,7, 1, 78];

var result = array1.filter( x => x > 77); // [78]

5. Array.prototype.find() 和 Array.prototype.findIndex()

    find()返回数组中满足提供的函数的第一个元素的值,不存在则返回 undefined。   

var array1 = [3, 23, 6, 45, 99];

array1.find( x=>(x > 4) ); //23

    findIndex()返回数组中满足提供的函数的第一个元素的下标值, 不存在则返回 -1.

array1.findIndex( x => (x > 4) ); //1

6. Array.prototype.foreach(item, index, array);

    对数组每个元素执行一次传入的函数。

var array1 = [2, 4, 5];
array1.forEach( (item, index, array) =>{
    console.log( "item: " + item  + "; index: " + index + " ; array: " + array + "\n")
} ); //item: 2; index: 0 ; array: 2,4,5

     //item: 4; index: 1 ; array: 2,4,5

     //item: 5; index: 2 ; array: 2,4,5

   7. Array.prototype.includes()

       判断一个数组是否包含一个指定的值   

var array1 = [1 ,3, 7];

array1.includes(2); //false
array1.includes(1); //true

8. Array.prototype.indexOf(element, fromIndex)

    返回在数组中可以找到的element的第一个索引,如果不存在则返回 -1。

var array1 = [1, 'a', 'a', 'bbb', 1, 'a'];
var indexArr = [];
//找到a出现的坐标
var index = array1.indexOf('a');
while(index != -1){
    indexArr.push(index);index = array1.indexOf('a', index+1)
};
console.log(indexArr); //[1,2,5]

  9. Array.prototype.join()

     将一个数组(或类数组)的所有元素连成一个字符串,默认以 ”,“连接。

var a = [1, "aaa", true];
a.join(); // "1,aaa,true"
a.join("-"); // "1-aaa-true"
a.join(null); // "1nullaaanulltrue"
a.join(undefined); // "1,aaa,true"

  10. Array.prototype.map()

    数组中的每个元素都调用提供的函数后返回的结果。

var array1 = [1, "rrr", true];
array1.map( x=>x+2 ); // [3, "rrr2", 3]

11. Array.prototype.pop()

     从数组中删除最后一个元素,并返回该元素的值。

var array1 = [1, 'a', true, undefined, 22];
array1.pop(); //22
array1.pop(); //undefined
array1.pop(); //true

12. Array.prototype.push()

      在数组末尾加入一个元素。

var array1 = [1, "a", true, undefined, 22];

array1.push(33); //返回数组长度6;
console.log(array1); // [1, "a", true, undefined, 22, 33]

array1.push(null); //7
console.log(array1); // [1, "a", true, undefined, 22, 33, null]

array1.push(undefined); // 8
console.log(array1); // [1, "a", true, undefined, 22, 33, null, undefined]

    13. Array.prototype.reverse()

        数组倒置。

var array1 = [1, 2, true, "sss"];
array1.reverse(); //["sss", true, 2, 1]

    14. Array1.prototype.shift()

        删除数组第一个元素并返回此元素。

var array1 = [1, 2, true, "aaa"];

array1.shift(); // 1
console.log(array1); // [2, true, "aaa"]

array1.shift(); // 2
console.log(array1); // [true, "aaa"]

    15. Array.prototype.slice()

        从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组。

        我一般直接记成传个坐标,取从坐标开始的元素组成新数组。

var array1 = [1, "a", true, undefined, 22, {obj: "m"}];

array1.slice(2); // [true, undefined, 22, {obj: "m"}]
console.log(array1); // [1, "a", true, undefined, 22, {obj: "m"}]

array1.slice(5); // [{obj: "m"}]
console.log(array1); // [1, "a", true, undefined, 22, {obj: "m"}]

array1.slice(6); // []
console.log(array1); // [1, "a", true, undefined, 22, {obj: "m"}]

    16. Array.prototype.some()

        测试数组中的某些元素是否通过由提供的函数实现的测试。

        其实也就是看数组里面有没有元素满足这个条件,只要有一个满足就返回true.

var array1 = [1, 4, 55, 23];
array1.some( x=>x>50 ); // 55大于50,找到一个满足条件的 返回 true
array1.some( x=>x>60 ); // 没有任何元素大于69,返回 false

    17. Array.prototype.sort()

        数组排序,默认按UUnicode()排序。

var array1 = [1, 45, 6, 23, 77, 8];
array1.sort(); // [1, 23, 45, 6, 77, 8]
console.log(array1); // [1, 23, 45, 6, 77, 8]

 

var array1 = [1, 45, 6, 23, 77, 8];
//升序
array1.sort( (a, b)=> a - b ); // [1, 6, 8, 23, 45, 77]
console.log(array1); // [1, 6, 8, 23, 45, 77]

//降序
array1.sort( (a, b)=> b-a ); // [77, 45, 23, 8, 6, 1]
console.log(array1); // [77, 45, 23, 8, 6, 1]
 

        源代码: 710行开始

    18. Array.prototype.unshift()

         将1到n个元素添加到数组的开头。

var array1 = [1, "b", "c", true];
array1.unshift(undefined, 2, null, [3, 4, 5], {name: "quninn"}); //9
console.log(array1); // [undefined, 2, null, [3, 4, 5], {name: "quninn"}, 1, "b", "c", true]

   这是都是从MDN选了一些记录,本来不想选这么多,无法记住,但是难以取舍,所以还是记了好多。便于自己以后查阅吧,文中例子都经过谷歌控制台验证。

2018-9-7更新

    总结一下以上方法哪些改变原数组,哪些不改变吧。

    JS数组方法_第1张图片

你可能感兴趣的:(js)