js学习笔记(五)
今日笔记
JavaScript
JavaScript 的迭代方法 iterator
.forEach()
属于array数组的方法,将对数组中的每一个元素进行操作.
let animals = ['dog','cat','birds','mouse']
animals.forEach(function(param){
console.log('animal is '+param); //每一个数组中的item作为实参传入函数中,循环计算
})
//.forEach()方法返回undefined
.map()
array中元素进行操作后返回操作后的值,类似于定义一个新的函数表达式,并将表达式在数组元素上循环执行。
let animals = ['dog','cat','birds','mouse']
newAnimals = animals.map( param => param+'_new') //箭头表达式函数体为表达式省略return,单行省略括号花括号。返回新的array
.filter()
同样是对于数组中元素进行循环处理,但函数体重包含的是对元素处理的条件,返回满足条件的值。
let animals = ['dog','cat','birds','mouse']
newAnimals = animals.filter( (param) => {
return param.length>3;
}) //返回新的array
.every(),.some()
- every 方法用于判断是否数组中每一个元素都满足函数中所描述的条件;
- some()方法用于判断是否数组中至少有一个元素满足函数中所描述条件;
都返回布尔值
//一些例子,ref: codecademy.com
let cities = ['beijing', 'shanghai', 'hanzhou', 'suzhou', 'nanjing'];
let nums = [1, 20, 30, 35, 40, 55, 100];
// .forEach()返回值是undefined
cities.forEach(city => console.log('Have you visited ' + city + '?'));
// 迭代运算并根据函数中的条件 返回 new array
let longCities = cities.filter(city => city.length > 7);
// 迭代运算每一个元素,并返回运算后结果new array
let smallerNums = nums.map(num => num - 5);
// test每一个元素是否满足条件,some()——某一个
nums.every(num => num < 0);
tips
1.定义函数时函数表达式function(params)
和箭头表达式(params)=>
等价
fruits.forEach(param => {console.log('I want to eat a '+param)}) //箭头表达(param)=>等价于函数关键字
fruits.forEach(function(param){console.log('I want to eat a',param)} ) //函数关键字function(params)
2.箭头函数的如果函数体为表达式可省略return
(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
// equivalent to: (param1, param2, …, paramN) => { return expression; }