数组函数(API)
some(查找数组中满足条件的元素)
满足返回true不满足返回false
语法
var 这个变量用来接收返回值 = 查找元素的数组.some(function(这个参数代表的是数组内的元素){
return 参数 === ‘谢老板’
}) 例:
var arr = [1,2,3,4,'谢老板'];
var res= arr.some(function(itme){
console.log(itme);
return itme === '谢老板';
})
console.log(res);
filter(过滤数组中元素,返回满足条件的元素)
filter(回调函数)作用,过滤数组中元素,返回新数组,新数组存放过滤元素
参数 是回调函数
回调函数的第一个参数是数组的元素
回调函数的第二个参数是数组元素的索引值
例:
var arr =[
{name:'aa',age:32 },
{name:'aa',age:33 },
{name:'aa',age:34 },
{name:'aa',age:35 }
]
var res = arr.filter(function(itmes,index){
//第一个回参itmes是代表数组中的元素
//第二个回参index 代表元素中的索引值
//可以先修改元素后筛选元素
// itmes.age = itmes.age+'857'
// return后面一般跟条件表达式
// 变量res 接收满足条件的所有元素,并存放在数组中
return itmes.age>32
})
console.log(res)
forEach()(遍历数组,无返回值)
参数:回调函数
回调函数的参一是数组元素
回调函数的参数二是数组元素的索引值
例:
var arr =[
{name:'aa',age:32 },
{name:'aa',age:33 },
{name:'aa',age:34 },
{name:'aa',age:35 }
]
arr.forEach(function(itmes,index){
console.log('索引值=',index);
console.log('遍历元素=',itmes);
document.write(`
<li>
<span>${itmes.name}</span>
<span>${itmes.age}</span>
</li>
`)
})
map()数据的重组
- 用法一
遍历数组,返回新的数组,新数组的内容是ruturn表达式的运算结果,与过滤的区别是,过滤返回的是满足runturn表达式的元素。例
var arr = [
{ naem: "aa", age: 32 },
{ naem: "aa", age: 31 },
{ naem: "aa", age: 33 },
{ naem: "aa", age: 34 },
];
var newArr = arr.map(function (item, index, arr) {
console.log(arr);
// item 数组元素 index 是索引 arr 是原数组
console.log(item, index);
// newArr 存放return 返回的内容
return item;
});
console.log(newArr);
- 用法二
修改数据,重组数据,原来的arr不发生改变,返回新的数组,可以配合一些运算改变数组里元素的值
例1:
var arr1 = [1, 2, 3, 5];
var newArr1 = arr1.map(function (item) {
return item * 2;
});
console.log(newArr1);
console.log(arr1);
例2:
var arr1 = [1, 2, 3, 5];
// 求数组中每个元素的平方根
var res = arr1.map(Math.sqrt); // 把Math.sqrt 定义的函数作为map的参数
console.log(res, arr1);
- 用法三
使用map方法重新格式化数组中的对象
例:
var arr2 = [
{key:0,value:10},
{key:1,value:20},
{key:2,value:30},
]
// [{0:10},{1:20},{2:30}] 目标结构
var res1 = arr2.map(function(item){
var obj = {}
// obj 进行添加属性并赋值处理
obj[item.key] = item.value
console.log(obj);
return obj
})
console.log(res1,arr2);
reduce() 实现累加计算,返回运算结果
参一是函数,参二是给回参一赋初始值。
回参一是累计计算的结果
回参二是参与计算的数据
回参三是索引值
回参四是原数组
例:
var orders = [
{produce:'苹果',total:328,id:123},
{produce:'香蕉',total:967,id:124},
{produce:'香奈儿',total:32854,id:125},
{produce:'大鸭梨',total:3281,id:126},
{produce:'笔',total:388,id:127}
]
var res = orders.reduce(function(sum,item){
// sum = 0
console.log(sum,'=========');
return sum+item.total
},0);
console.log(res);