JS操作数组的方法

1.遍历

常用方法:for,forEach,for…in, for…of

- for:

var arr = [1,2,3,4];
for(var i=0; i<arr.length; i++){
    console.log(arr[i]);
}

- forEach:不能使用break语句跳出循环,也不能使用return语句从闭包函数中返回,从头至尾遍历数组,为每个元素调用指定函数。改变数组本身。函数的参数依次是:数组元素,元素的索引,数组本身需要注意的是回调函数中的this指向的是window.

var arr = [1,2,3,4,5];
arr.forEach(function(element,index,arr1){
    arr[index] = element+1;
})      
// arr = [2, 3, 4, 5, 6]

- for…in:这种方法不仅数组本身元素将被遍历到,那些由用户添加的附加元素也将被遍历到,甚至连数组原型中的属性也将被遍历到。甚至在某些情况下,上面代码将会以任意顺序去遍历数组元素。用于遍历包含键值对(key-value)的对象,对数组并不是那么友好。

var arr = [1,2,3,4];
for(var key in arr){
    console.log(arr[key]);
}

- filter:将数组元素执行特定函数,而返回一个子集。输入是执行逻辑判断的函数,该函数返回true或false,输出是判定为true的元素

var arr = [1,2,3,4,5];
var arr1 = arr.filter(function(x){
     return x<3;
 })      //arr1 = [1,2]

~以下是ES6新增~~~

- for…of:是ES6定义的新的遍历数组的方法

var arr = [1,2,3,4];
for (var key of arr.keys){
    console.log(arr[key] );
}

for ([key,val] of arr.entries){
    console.log(key,val);
}

- every:是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则最后返回true

var arr = [1,2,3,4,5];
var arr1 = arr.every(function(x){
    return x<3;
})     
//false

- some:是对数组中每一项运行指定函数,如果该函数对任一项返回true,则最后返回true

var arr = [1,2,3,4,5];
var arr1 = arr.some(function(x){
    return x<3;
})    
 //true

- map:调用的数组的每一个元素传递给指定的函数,并返回一个新数组。不改变原数组。函数的参数只有传进来的数组元素

var arr = [1,2,3,4,5];
var arr1 = arr.map(function(x){
     return x*x;                     //一对一的关系,传进来一个值,返回一个对应的值。
 })      //arr1 = [1,4,9,16,25]

2.查找

-  indexOf:找到返回该值所在位置索引值,找不到返回-1

~以下是ES6新增~~~

- find:遍历数组,找到第一个符合条件的成员。返回值是数组的成员,不再继续遍历,回调三个参数:值,位置,原数组

- findIndex:遍历数组,返回满足项的索引值,找不到返回-1 回调三个参数:值,位置,原数组

var arr = [1,2,3,4,5,5,5];
var arr1 = arr.findIndex(function(x){
    return x == 5;
});     //arr1 = 4

- includes():表示某个数组是否包含给定的值,回调参数:待检查的值,搜索的起始位置

3. 转换:类数组转数组

- ES5:[].slice.call(arguments)

- ES6:Array.prototype.from(arraylike,mapFn,thisArg)

4. 创建数组:

ES5:

let arr = new  Array(5);
let arr = [];

ES6:

let arr = Array.of(1,2,3,4,5);

- fill(“填充的东西”,起始位置,结束位置)

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值