View underscore-2.8.js
| _.chain(students) | |
| .filter(isApproved) | |
| .pluck('grades') | |
| .flatten() | |
| .min() // Can you guess what this does? | |
| .value() | |
| // 6 |
View underscore-2.7.js
| _.every(studentsByClass["A"], isApproved) // false | |
| _.every(studentsByClass["B"], isApproved) // true |
View underscore-2.6.js
| var studentGrades = _.pluck(studentsByClass["A"], 'grades') | |
| // [[7.0, 6.9, 8.0], [5.0, 8.7, 3.7]] - not very useful | |
| var grades = _.flatten(studentGrades) | |
| // [7.0, 6.9, 8.0, 5.0, 8.7, 3.7] | |
| average(grades) | |
| // 6.55 |
View underscore-2.5.js
| var studentsByClass = _.groupBy(students, 'class') | |
| // Same result! Neat. |
View underscore-2.4.js
| var studentsByClass = _.groupBy(students, function (student) { return student.class }) | |
| /* { | |
| "A": [ | |
| { name: "John", grades: [7.0, 6.9, 8.0], class: "A" }, | |
| { name: "Paul", grades: [5.0, 8.7, 3.7], class: "A" } | |
| ], | |
| "B": [ | |
| { name: "Luke", grades: [9.0, 8.2, 6.2], class: "B" }, | |
| { name: "Mark", grades: [6.0, 9.0, 8.4], class: "B" } | |
| ] |
View underscore-2.3.js
| _.pluck(approvedStudents, 'name') | |
| // ["John", "Luke", "Mark"] |
View underscore-2.2.js
| var approvedStudents = _.filter(students, isApproved) | |
| _.map(approvedStudents, function (s) { return s.name }) | |
| // ["John", "Luke", "Mark"] |
View underscore-2.1.js
| var students = [ | |
| { name: "John", grades: [7.0, 6.9, 8.0], class: "A" }, | |
| { name: "Paul", grades: [5.0, 8.7, 3.7], class: "A" }, | |
| { name: "Luke", grades: [9.0, 8.2, 6.2], class: "B" }, | |
| { name: "Mark", grades: [6.0, 9.0, 8.4], class: "B" } | |
| ]; | |
| var sum = function (numbers) { return _.reduce(numbers, function (sum, n) { return sum + n }, 0) } | |
| var average = function (numbers) { return sum(numbers) / numbers.length } | |
| var isApproved = function (student) { return average(student.grades) >= 7 } |
View why-doesnt-this-work.js
| import React from 'react' | |
| // https://github.com/gaearon/babel-plugin-react-transform/issues/57 | |
| export default function wrapFunctionalComponent (fc) { | |
| return React.createClass({ | |
| displayName: fc.Name, | |
| render() { | |
| return fc.apply(null, this.props) | |
| } |
View underscore-1.6.js
| var array = [{name: "Foo", points: 1}, {name: "Bar", points: 3}]; | |
| var initial = 0; | |
| var totalPoints = function (result, player) { | |
| return result + player.points; | |
| }; | |
| var total = _.reduce(array, totalPoints, initial); | |
| console.log(total) // 4 |
NewerOlder