Skip to content

Instantly share code, notes, and snippets.

@Chunlin-Li
Created April 17, 2016 16:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Chunlin-Li/745846304176c35b85908a49797a51a1 to your computer and use it in GitHub Desktop.
Save Chunlin-Li/745846304176c35b85908a49797a51a1 to your computer and use it in GitHub Desktop.
var orginalData = [{name:'jch', age:30, score:90, sex: 1, lesson: 'math'},{ name:'oh', age:31, score: 80, sex:1, lesson: 'math'}, {name:'jia', age:27, score: 70, sex:0, lesson: 'math'}, {name:'jch', age: 30, score: 80, sex: 1, lesson: 'english'}];
const fn_01 = (data, specifiedAge) => data.filter(item => item.age > specifiedAge);
const fn_02 = (data, specifiedAge) => data.reduce((prev, curr) => {
if (curr.age > specifiedAge) {
prev.name.push(curr.name);
prev.lesson.push(curr.lesson);
}
return prev;
}, {name: [], lesson: []});
const fn_03 = (data) => data.reduce((prev, curr, i, data) => {
prev.avr_lesson += curr.score;
prev.avr_sex += curr.score;
if (i === data.length - 1) { // when finish the accumulation
prev.avr_lesson = prev.avr_lesson / data.length;
prev.avr_sex = prev.avr_sex / data.length;
}
return prev;
}, {avr_lesson: 0, avr_sex: 0});
console.log('fn_01', fn_01(orginalData, 28));
console.log('fn_02', fn_02(orginalData, 28));
console.log('fn_03', fn_03(orginalData));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment