js reduce 学习
<script>
// reduce 学习 1.四个参数
// prev上一次调用的返回值
// cur 当前处理的元素
// index 索引
// arr 原数组
// init 初始值
// arr.reduce((prev,cur,index,arr)=>{},init)
// ----------------------------
// 判断对象中是否有某个参数
// let name = {
// 'a': 1
// }
// console.log('a' in name) // true
// ------------------------ 判断出现的次数
// var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice', 'Bob', 'Bob'];
// var countedNames = names.reduce(function (allNames, name) {
// console.log(allNames, name);
// if (name in allNames) {
// allNames[name]++;
// }
// else {
// allNames[name] = 1;
// }
// console.log('[ ] >',allNames )
// return allNames;
// }, names);
// ---------------------去重
// let arr = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4];
// let result = arr.sort().reduce((init, current) => {
// console.log(init);
// if ( init[init.length - 1] !== current) {
// init.push(current);
// }
// console.log('[ init ] >', init)
// return init;
// }, []);
// console.log(result); // - [1,2,3,4,5]
// ------------- */
// var person = [
// {
// name: 'xiaoming',
// age: 18
// }, {
// name: 'xiaohong',
// age: 17
// }, {
// name: 'xiaogang',
// age: 17
// }
// ];
// function groupBy(objectArray, property) {
// return objectArray.reduce(function (acc, obj) {
// var key = obj[property]; //17 18
// if (!acc[key]) {
// acc[key] = [];
// }
// acc[key].push(obj);
// return acc;
// }, {});
// }
// var groupedPerson = groupBy(person, 'age');
// console.log(groupedPerson);
// ---------------------------
// let people = [
// { name: 'Alice', age: 21 },
// { name: 'Max', age: 20 },
// { name: 'Jane', age: 20 }
// ];
// let result = people.reduce((a, b) => {
// a = a + b.age;
// return a;
// }, 0)
// console.log(result) // - 结果:61
</script>
加班万岁!