核心提示:reduce()方法和map()方法实例分析var kvArrays = [{key: 1, value: 10,me:3},{key: 2, value: 20,me:2},{key: 3, val...
reduce()方法和map()方法实例分析
var kvArrays = [{key: 1, value: 10,me:3}, {key: 2, value: 20,me:2}, {key: 3, value: 30,me:1}, {key: 4, value: 60,me:2},]; var reformattedArray = kvArrays.reduce((kvArrays,kvArray)=>{ const {me} = kvArray; kvArrays[me] = kvArrays[me] ? [...kvArrays[me] , kvArray]: [kvArray] return kvArrays } ); console.log(reformattedArray);
以上代码将一个包含对象的数组用以创建一个包含新重新格式化对象的新数组。
var kvArrays = [{key: 1, value: 10,me:3}, {key: 2, value: 20,me:2}, {key: 3, value: 30,me:1}, {key: 4, value: 60,me:2},]; var kvArray={}; var reformattedArray = kvArrays.reduce((kvArrays,kvArray)=>{ const {me} = kvArray; kvArrays[me] = kvArrays[me] ? [...kvArrays[me] , kvArray]: [kvArray] return kvArrays },{} ); console.log(reformattedArray);
const obj = { test() { console.log(this === obj); } }; const t = obj.test; t() ;//这里t代表方法test(),相当于直接调用
const obj = { test() { return () => { // 这里的 this 是 getArrow() 中的 this, // 由 getArrow() 的调用方式决定 console.log(this === obj); }; } }; const t = obj.test(); //加()时,这里的t相当于内部的箭头函数, //箭头函数的this与外层函数test()被调用的方式有关 //当不带()时,t相当于test()函数 t();//这里t代表方法test(),隐含意思是obj.test().t()相当于直接调用