reduceWedataJSON

reduceWedataJSON

コード

function reduceWedataJSON(data) {
  • 配列 r_keys に SITEINFO の key を定義する
  • url
  • nextLink
  • insertBefore
  • pageElement
  • の4つだけ。exampleUrl は捨てる。 comment とかの独自に定義された key も捨てる
    var r_keys = ['url', 'nextLink', 'insertBefore', 'pageElement']
  • info
  • SITEINFO の data の値(SITENFO の本当の中身)を抽出 map
  • url が定義されている SITEINFO だけを抽出 filter
    var info = data.map(function(i) {
        return i.data
    }).filter(function(i) {
        return ('url' in i)
    })
  • もし info.length が 0 ならば、空の配列を返す
    if (info.length == 0) {
        return []
    }
    else {
  • もし info が空でないならば、
  • url の文字列の長さ順で並べ換える(長い順) sort
        info.sort(function(a, b) {
            return (b.url.length - a.url.length)
        })
  • info に収納した SITEINFO を map
  • r_keys で定義した key の値だけを詰め直したオブジェクトを返す
        return info.map(function(i) {
  • 一時収納用の item オブジェクトを定義
            var item = {}
  • r_keys で forEach
            r_keys.forEach(function(key) {
  • SITENIFO に key が存在したら key の値を一時収納用の item に収納する
                if (i[key]) {
                    item[key] = i[key]
                }
            })
  • item を返す
            return item
        })
    }
}