アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

ハーフマラソンに参加してきました

こんにちは^^西尾です。

4月に入り、すっかり春な感じですね。

今回は、アシアル、実は体育会系なんですよ!(?)
というところをご紹介したいと思います。

アシアルの一部では、
密かにランニングがブームだったりします。

ということで、
先週の日曜日(4月6日)に、
アシアルのランニング好き数名で
PARACAP2014というマラソン大会に参加してきました^^
http://www.paracup.info/

前日は、夜中まで雨雨雨。。
当日の天気予報では、晴れ時々荒れ模様・・・との微妙な天気予報でした。

若干の不安が残るところでしたが、とにかくスタート会場に集合です。



会場についてみるとなかなかの人だかり!



アシアルのメンバーは、マラソンベテランのTさんや、母国でのマラソン経験豊富なLさんを除いて、
みんな大会初心者だったので、会場であたふたしてしまいました。。



出場記念のTシャツとゼッケンをもらって、若干テンションもあがります!













みんな念入りに準備中。





さてさて準備をしていると、なんだか雲行きが怪しいですね。





と思っている間に、スタートのカウントダウンが始まりました!!






一斉にスタート!





バナナ!?





仮装したランナーがいっぱい!!






われらがリーダーTさん!トップ集団入り!!





途中で雨は降るし、雷は鳴るし、なぜか雹まで降ってくるし、
ものすごい天候の中での大会でした。。。




そんなこんなで、やっとゴールに到着!長かったぁーー。



初マラソン大会は、そんなこんなで無事に終了しました(^^)





ということで、おつかれさまでしたー(^▽^)/”



次はなんの大会に出るのかな?お楽しみに♪

JavaScript .(ドット)つなぎのキー文字列でオブジェクトの値にアクセスする

どうも、今後はサドルごと自転車がなくなった高橋です。
まだ弊社では導入されておりませんが、15時のビール休憩があればなぁ。と思う日々を過ごしております。

さっそく本題に入ります。

いきなりですが、こんなオブジェクトがあったとします。



    var obj = {
        world: {
            japan: {
                greeting: 'ウィッス!',
                prefecturesCount: 47
            },
            america: {
                greeting: 'What\'s up?'
            }
        },
        noworld: 'ウェーイ!!'
    }


obj['world.japan.greeting'] で「ウィッス!」できたらなぁ。。。
と思う場面があったので近いノリのアクセサメソッドを作ってみました。



    function getValueByDsvKey (key, obj, dsv) {
        key = key || '';
        obj = obj || {};
        dsv = dsv || '.';

        var keys = key.split('.');
        var value = obj;

        for (var layer = 0, recursive = keys.length; layer <= recursive - 1; layer++) {
            value = value[keys[layer]];
        }

        return value;
    }

    alert(getValueByDsvKey('world.japan.greeting', obj)); // ウィッス!




やった!ウィッス!出来ましたね(^_^)

大したコードではないですが、配列に持たせれば階層を意識せずに処理できて便利です。



    var accessKeys = [
        'world.japan.greeting',
        'world.america.greeting',
        'world.japan.prefecturesCount',
        'noworld'
    ];
    
    accessKeys.forEach(function (key) {
        alert(getValueByDsvKey(key, obj)) // 順番にアラートされる
    });


ただ、どうすれば obj['world.japan.greeting'] でウィッス!出来るのかが分かりませんでした。
プロパティへのアクセスについてカスタマイズする方法をご存知の方がいたら教えてもらえると嬉しいです(・ω<)

それでは!ウェーイ!!

ソースコードをまとめました。ChromeのDevTools等にコピペすれば動作確認できます。

>>JS
var obj = {
world: {
japan: {
greeting: 'ウィッス!',
prefecturesCount: 47
},
america: {
greeting: 'What\'s up?'
}
},
noworld: 'ウェーイ!!'
}

var accessKeys = [
'world.japan.greeting',
'world.america.greeting',
'world.japan.prefecturesCount',
'noworld'
];

accessKeys.forEach(function (key) {
alert(getValueByDsvKey(key, obj)) // 順番にアラートされる
});

function getValueByDsvKey (key, obj, dsv) {
key = key || '';
obj = obj || {};
dsv = dsv || '.';

var keys = key.split('.');
var value = obj;

for (var layer = 0, recursive = keys.length; layer <= recursive - 1; layer++) {
value = value[keys[layer]];
}

return value;
}