map:可以把元素转换成数组,类型由开发人员决定
任何时候如果数组格式与所需要的格式不一样,就用map
map和filter都不会修改原始数组,而是返回数组的拷贝
const cart = [{name:"Widget",price:9.95},{name:"Gadget",price:22.95}];
const name = cart.map(x=>x.name); //["Widegt","Gadget"]
const price = cart.map(x=>x.price); //[9.95,22.95]
const discountPrice = price.map(x=>x*0.8);//[7.96,18.36]
数组每个元素在调用提供的方法时都会传入三个参数:元素本身、元素的下标、以及数组本身
const item = ["Widget","Gadget"];
const price = [9.95,22.95];
const cart = item.map(x,i) => ({name:x,price:price[i])));
//cart:[{name:"Widget",price:9.95},{name:"Gadget",price:22.95}]
filter:用来删除数组中不需要的元素,返回一个删除了某些元素的数组。删除元素取决于开发人员
map和filter结合使用:
reduce:可以转化整个数组,允许提供一个可以控制输出的函数(回调函数和接收累加值的初始值)
const arr = [5,7,2,4];
const sum = arr.reduce((a,x) => a+=x);