Skip to content
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
Something went wrong with that request. Please try again.