iT邦幫忙

2021 iThome 鐵人賽

0
Modern Web

JavaScript 從 50% 開始,打造函式庫不是問題!系列 第 32

JS 32 - 資料丟進來,就能計算所需樣本數量!

大家好!

今天要接續 JS 30 的內容。
我們進入今天的主題吧!


程式碼

function parse() {
    var error = new TypeError(''),
        warning = new Warning('A non-numeric value contained'),
        data, values, illegals, variance;
    try {
        (function () {
            data = JSON.parse(this.value);
            if (typeof data === 'number') return (variance = data);
            if (typeof data !== 'object') throw error;
            values = Object.keys(data).map(function (key) {
                return data[key];
            });
            illegals = values.filter(function (v) {
                return typeof v !== 'number';
            });
            if (illegals.length > 0) throw warning;
            variance = VarS(values);
        }).call(this);
        (function () {
            fns.update('normal', '');
            this.classList.remove('invalid');
            els[2].value = variance;
        }).call(this);
    } catch (e) {
        (function (continuable) {
            fns.update(continuable ? 'marked' : 'urgent', e.message);
            if (continuable) return;
            this.classList.add('invalid');
            els[2].value = 0;
        }).call(this, e.name.slice(-7) === 'Warning');
    }
}

實測

範例連結製作中。


差不多也到尾聲了。
如果對文章有任何疑問,歡迎於下方提問和建議!
我是 Felix,我們明天再見!


上一篇
JS 31 - 一個 div 就能安心輸入的表單檢查提示!
下一篇
JS 33 - 在觸控裝置偵測手勢的滑動方向!
系列文
JavaScript 從 50% 開始,打造函式庫不是問題!46

尚未有邦友留言

立即登入留言