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; }