Sntls data manipulation example

by Dan Stocker

HTML

<script src="https://dl.dropboxusercontent.com/u/9258903/JavaScript/phil-0.2.2.js"></script>
<script src="https://dl.dropbox.com/u/9258903/JavaScript/dessert-0.3.2.js"></script>
<script src="https://dl.dropbox.com/u/9258903/JavaScript/troop-0.7.1.js"></script>
<script src="https://dl.dropbox.com/u/9258903/JavaScript/sntls-0.16.0.js"></script>

JavaScript

var whoKnowsWho = {
    "Joe": {
        knows: ["Al", "David", "Joan"]
    },
    "Al": {
        knows: ["Joe"]
    },
    "Joan": {
        knows: ["Joe", "Daniel", "Pam"]
    }
};

sntls.Collection.create(whoKnowsWho)
    // filtering items where keys start with "J"
    .filterByPrefix('J')
    // re-structuring collection by leaving
    // only property "knows"
    .mapValues(function (value) {
        return value.knows;
    }, undefined, sntls.Collection.of(Array))
    // joining all items
    .join(' and ')
    // forming sentences
    .forEachItem(function (item, key) {
        console.log(key, "knows", item);
    });