简介:
重点是需要做什么?而不是如何描述,比如遍历数组并打印.
小案例:
// 1.遍历
let forEach = function (array, action) {
for (let index = 0; index < array.length; index++) {
action(array[index])
}
}
// 2.打印
let logItem = function (item) {
console.log(item)
}
// 3.使用(写好以后,我们只需要执行这一句代码即可)
forEach([1, 2, 3, 5], logItem)
找出数组中的最小数
普通方法:
let findMinArray = function (array) {
let minValue = array[0]
for (let index = 0; index < array.length; index++) {
if (minValue > array[index]) {
minValue = array[index]
}
}
return minValue;
}
findMinArray([8, 6, 4, 5, 9])//4
使用Math.min函数
const minValue = function (array) {
return Math.min(...array);
}
minValue([8, 6, 4, 5, 9])//4
上述方法简写
const minValue = array => Math.min(...array)
minValue([8, 6, 4, 5, 9]);
函数式编程的工具箱,map,fillter,reduce方法运用
map使用
案例:把一个数据集合转成另一个数据集合
准备好数组
let daysWeek = [
{
name: 'Monday',
value: '一'
},
{
name: 'Tuesday',
value: '二'
},
{
name: 'Sunday',
value: '日'
}
]
过滤value值,普通方法
let weekValue = []
daysWeek.forEach(element => {
weekValue.push(element.value)
})
console.log(weekValue) //["一","二","日"]
map使用:(就一句话)
console.log(daysWeek.map(v => v.value));
fillter使用
案例:打印大于0的数组集合
let arr = [-1, 1, 2, -2]
普通方法
let fillterNumber = function (array) {
let newArr = []
array.forEach(element => {
if (element > 0) {
newArr.push(element)
}
});
return newArr;
}
console.log(fillterNumber(arr));//[1,2]
fillter方法使用:(里面就一句话)
let fillterNumber = function (array) {
return array.filter(v => v > 0)
}
console.log(fillterNumber(arr)); //[1,2]
reduce方法使用:在数组中用来求值操作
reduce常规运算
let sum = function (array) {
return array.reduce((a, b) => a * b);
}
console.log(sum([1, 2]));//2
reduce多个数组的合并:非常灵活
let mergeArray = (...array) => [].concat(...array);
console.log(mergeArray([1, 2, 3], [4, 5, 6], [7, 8, 9]));//[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]