js的数组方法总结;map,foreach,filter,reduce

处理数组经常用到的方法;
  • array.every

every()方法测试数组的所有元素是否都通过了指定函数的测试。
只会返回true和false,可用于数组判断;

function isBigEnough(element, index, array) { 
  return element >= 10; 
} 

[12, 5, 8, 130, 44].every(isBigEnough);   // false 
[12, 54, 18, 130, 44].every(isBigEnough); // true
//也可以箭头函数
[12, 5, 8, 130, 44].every((item)=> item>10); //false
  • array.map

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回

var numbers = [1, 5, 10, 15];
var doubles = numbers.map(function(x) {
   return x * 2;
});
// doubles is now [2, 10, 20, 30]
// numbers is still [1, 5, 10, 15]

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots is now [1, 2, 3]
// numbers is still [1, 4, 9]
//主要是生成了一个新数组,需要用变量来接收;

var new_array = arr.map(function callback(currentValue, index, array) {
    // Return element for new_array
}[, thisArg])
  • array.forEach
var a = ['a', 'b', 'c'];

a.forEach(function(element) {
    console.log(element);
});

如果对数组项做修改,那么原数组改变

let arr1 = [{id:1,name:'a1'},{id:2,name:'a2'},{id:3,name:'a3'}];
arr1.forEach(item => {item.id += 1});
console(arr1);

0: {id: 2, name: "a1"}
1: {id: 3, name: "a2"}
2: {id: 4, name: "a3"}

//用法:
arr.forEach(function callback(currentValue, index, array) {
    //your iterator
}[, thisArg]);
array.slice

slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。

var a = ['zero', 'one', 'two', 'three'];
var sliced = a.slice(1, 3);

console.log(a);      // ['zero', 'one', 'two', 'three']
console.log(sliced); // ['one', 'two']
语法:
arr.slice()
arr.slice(begin)
arr.slice(begin, end)
array.filter

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
可用于数组和数组对象的筛选;需要用新数组来接收;

var words = ["spray", "limit", "elite", "exuberant", "destruction", "present"];

var longWords = words.filter(word => word.length > 6);

语法:

var newArray = arr.filter(callback[, thisArg])

element正在数组中处理的当前元素。

index数组中正在处理的元素的索引。

array数组filter被调用。

thisArg Optional可选的。

this执行时使用的值callback。
  • array.some

some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试。与every的区别在于,every必须所有元素都符合条件,才会返回true;some是有任一元素满足条件都会返回true;

function isBiggerThan10(element, index, array) {
  return element > 10;
}

[2, 5, 8, 1, 4].some(isBiggerThan10);  // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true
es6:
[12, 5, 8, 1, 4].some(item => item>10);//true
只是简单的总结下使用方法,更多的关于这些方法的使用技巧,还在探索,诸位加油。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值