数组常用方法总结

1.基本:

push/pop/shift/unshift

push向末尾添加一个或多个值,将要传的值作为参数传递,eg:arr.push(2,3)

pop向末尾移除一个值,

shift删除首部的一个值,

unshift向首部添加一个或多个值(传参数)

以上方法都是直接修改原数组,添加的方法返回值为新数组长度,删除的方法返回值为删除的元素

2:进阶

splice:

直接修改原数组,可以传三个参数,可实现删除增加替换的功能

 

 

 

slice:

不影响原数组,传两个参数,开始位置索引,结束位置索引,截取返回一个新数组(不包含介绍索引元素),也可传一个参数,传正数就从该索引往后截取全部,传负数截取后面元素(-1截取一个-2截取2个),传一正一负截取开始位置到去除负数所指的元素之前

split:

不影响原字符串,将字符串截取为数组返回,传参数可制定以某字符截取,截取后每个元素为字符串形式

concat:

不影响原数组,合并数组,返回合并后的新数组

join:

不影响原数组,将数组转为字符串返回,默认以‘,’隔开,可以传参制定隔开符

reverse:

反转数组,直接修改原数组,返回值也是反转后的数组

sort:

排序,直接修改原数组,可以传个比较函数(a,b)=>a-b升序,b-a降序

indexOf/lastindexof和index相反

接受的参数为数值

返回数组中第一个与参数相等的元素的索引,没有满足条件的返回-1

 3.高级:

find:

找出满足条件的第一个元素,并返回,没找到返回undefined

findIndex:

var arr=[3,4,5,6,7,8,9]
var res=arr.findIndex(function (item,index) {
return item==4
})
console.log(res);//1
进行循环遍历返回第一个满足条件的元素的索引
以上两个方法(第一个参数为callback)都可以接受第二个参数,用来绑定回调函数的this对象。
function f(v){
  return v > this.age;
}
let person = {name: 'John', age: 20};
[10, 12, 26, 15].find(f, person);    // 26

includes:
方法返回一个布尔值,表示某个数组是否包含给定的值可以传两个参数,第二个可传可不传,第二个参数表示开始搜索的索引

map
不影响原数组,对元素进行加工后返回到一个新数组中
var arr=[7,6,5,4,2,4,9]
    var a=arr.map((item,index)=>{
      return item=item+5
    })
console.log(arr);[ 7, 6, 5, 4, 2, 4, 9 ]
console.log(a);[ 12, 11, 10, 9, 7, 9, 14 ]

reduce:

不影响原数组,对元素进行累加

 

filter:

不影响原数组,对数组进行过滤,返回满足条件的元素的新数组

 

some/every:

some:传入一个回调,如果有任意一个元素满足条件则返回true,否则false

every:必须每个元素都满足条件才返回true

 

遍历数组的方法:entries()values()keys()

这三个方法都是返回一个遍历器对象,可用for...of循环遍历,唯一区别:keys()是对键名的遍历、values()对键值的遍历、entries()是对键值对的遍历

for(let item of ['a','b'].keys()){
    consloe.log(item);
    //0
    //1
}
for(let item of ['a','b'].values()){
    consloe.log(item);
    //'a'
    //'b'
}
let arr4 = [0,1];
for(let item of arr4.entries()){
    console.log(item);  
    //  [0, 0]
    //  [1, 1]
}
for(let [index,item] of arr4.entries()){
    console.log(index+':'+item);
    //0:0
    //1:1
}

 

Array.from

将类数组对象(即有length属性的对象)和可遍历对象转为真正的数组。
比如,使用·Array.from()·方法,可以轻松将·JSON·数组格式转为数组。

let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};

let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

Array.of

Array.of()方法是将一组值转变为数组

let arr0 = Array.of(1,2,33,5);
console.log(arr0);//[1,2,33,5]

let arr1 = Array.of('你好','hello');
console.log(arr1);//["你好", "hello"]

 



 

posted @ 2019-07-09 14:00  短腿~欧尼  阅读(1418)  评论(0编辑  收藏  举报