A-A+

数组相关方法

2018年10月07日 JavaScript 暂无评论 阅读 21 次

数组相关方法:

删除/添加

let arr = [1,2,3]

push:向数组的末尾增加一项 返回值是数组的新长度

arr.push('3',5)  //[1,2,3,'3',5]

pop:删除数组的末尾项 返回值是删除的数组项

arr.pop()   //5
arr.pop()   //'3'
arr   //[1,2,3]

shift:删除数组开头项 返回被删除的开头项目

arr.shift()   //1

unshift:向数组开头增加一项 返回值是数组的新长度

arr.unshift(6) //3
arr    //[6,2,3]

splice:删除数组中的任意项 返回值是被删除的数组项

arr //[6, 6, 4, 3]
arr.splice(0,1)  //[6]
arr   //[6, 4, 3]
arr.splice(2,0,4,6)  //[]
arr   //[6, 4, 4, 6, 3]
arr.splice(1,1,9,9) //[4]
arr  // [6, 9, 9, 4, 6, 3]

slice:复制数组 返回值是复制到的新数组 写上数值之后 不包含被复制的最后一项

拼接:

concat:把一个数组和另一个数组拼接在一起 返回拼接好的数组

arr.concat(9,[1,2,4])  //[2, 3, 6, 9, 1, 2, 4]

join:把数组中的每一项 按照指定的分隔符拼接成字符串

new Array(4).join('abc') // 'abcabcabc'

排序:

reverse:倒序数组 返回值倒序数组 原有数组改变,原数组不变

[1,3,5,6].reverse() // [6, 5, 3, 1]

sort:根据匿名函数进行冒泡排序 b-a倒序 a-b升序

迭代方法

forEach:方法对数组的每个元素执行一次提供的函数,遍历数组,参数(数组内容,索引,数组本身)
filter 过滤,不会改变原数组,返回过滤后的新数组

    let arr=[1,3,5,6,7,9];
    let arr2= arr.filter(function(item,index){
        return item%2===0;
    })
    console.log(arr2)  //[6]
    console.log(arr) //[1,3,5,6,7,9]

map()映射,循环遍历数组 参数是一个匿名函数,创建新数组,结果为原数组调用函数后返回的结果

[1,3,5].map(function(t,i){return t*2})  //[2,6,10]

reduce()方法,把一堆变成一个

[1,3,5,6].reduce(function(t,n){return t+n}) //15
[1,3,5,6].reduce(function(t,n){return t+n},1) //16

reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。

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

[1,2,3,4].every(function(item){
return item>3
})  //false

fill()方法用于将一个固定值替换数组的元素。
[1,2,3,4,5].fill(0) //[0,0,0,0,0]
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。

  [1,2,4,5,6].find(function(item){
        console.log(item);
        return item>5;
    })

findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。

[1,3,5,6].some(function(item){return item=== 6})

其他:

from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。
如果对象是数组返回 true,否则返回 false。

Array.from("UNOOB") //["U", "N", "O", "O", "B"]

var arr = Array.from([1, 2, 3], x => x * 10);
// arr[0] == 10;
// arr[1] == 20;
// arr[2] == 30;

indexOf:返回获取项在数组中的索引
lastIndexOf:返回获取项在数组中出现的最后一次索引

indexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。
lastIndexOf:接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。

copyWithin() 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
[1,2,3,4].copyWithin(2,1,3)
entries() 从数组中创建一个可迭代的对象。迭代对象的每个实体来自数组对应的元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.entries();
console.log(x.next().value)

isArray() 方法用于判断一个对象是否为数组。如果对象是数组返回 true,否则返回 false。
keys() 方法用于从数组创建一个包含数组键的可迭代对象。如果对象是数组返回 true,否则返回 false。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.keys();
x //Array Iterator {}
x.next()  //{value: 1, done: false}
标签:

给我留言

Copyright © web前端技术开发个人博客 保留所有权利  京ICP备14060653号 Theme  Ality

用户登录