2014年9月15日月曜日

開発環境

Head First JavaScript Programming (Eric T. Freeman (著)、 Elisabeth Robson (著)、 O'Reilly Media )のChapter 10(Liberated functions: First Class Functions)、EXERCISE(p.463)を解いてみる。

EXERCISE(p.463)

コード(BBEdit, Emacs)

var products = [
        { name: "Grapefruit", calories: 170, color: "red", sold: 8200 },
        { name: "Orange", calories: 160, color: "orange", sold: 12101 },
        { name: "Cola", calories: 210, color: "caramel", sold: 25412 },
        { name: "Diet Cola", calories: 0, color: "caramel", sold: 43922 },
        { name: "Lemon", calories: 200, color: "clear", sold: 14983 },
        { name: "Raspberry", calories: 180, color: "pink", sold: 9427 },
        { name: "Root Beer", calories: 200, color: "caramel", sold: 9909 },
        { name: "Water", calories: 0, color: "clear", sold: 62123 }
    ],
    compareName = function (colaA, colaB) {
        var nameA = colaA.name,
            nameB = colaB.name;
        
        if (nameA < nameB) {
            return -1;
        }
        if (nameA === nameB) {
            return 0;
        }
        return 1;
    },
    compareCalories = function (colaA, colaB) {
        return colaA.calories - colaB.calories;
    },
    compareColor = function (colaA, colaB) {
        var colorA = colaA.color,
            colorB = colaB.color;
        
        if (colorA < colorB) {
            return -1;
        }
        if (colorA === colorB) {
            return 0;
        }
        return 1;
    },
    printProducts = function (products) {
        var i,
            max,
            output = '',
            product;
        
        for (i = 0, max = products.length; i < max; i += 1) {
            product = products[i];
            output += 'Name: ' + product.name +
                      ', Calories: ' + product.calories +
                      ', Color: ' + product.color +
                      ', Sold: ' + product.sold + '\n';
        }
        print(output);
    };

products.sort(compareName);
print('Products sorted by name:');
printProducts(products);

products.sort(compareCalories);
print('Products sorted by calories:');
printProducts(products);

products.sort(compareColor);
print('Products sorted by color:');
printProducts(products);












						

0 コメント:

コメントを投稿