在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/ HTML問(wèn)答
涼心人 回答

如果純粹的程序?qū)崿F(xiàn),你說(shuō)的match,或indexOf可能就是最好的辦法,沒(méi)有捷徑。如果你愿意研究下ElasticSearch的話(huà),給你安利一波ElasticSearch搜索引擎方式的匹配。查詢(xún)只需要做插入ES,查詢(xún)ES就行了

生性 回答

兩種class名可以用下面的代碼:

if($('button').hasClass('glyphicon-sort-by-attributes-alt')){
    $('button').add('glyphicon-sort-by-attributes').removeClass('glyphicon-sort-by-attributes-alt')
}
else {
    $('button').add('glyphicon-sort-by-attributes-alt').removeClass('glyphicon-sort-by-attributes')
}
別硬撐 回答

考慮一下用selenium,全自動(dòng)登錄,除了驗(yàn)證碼需要識(shí)別算法或者手動(dòng)輸入,無(wú)需解析cookie,方便快捷

瘋子范 回答

react中的key屬性,它是一個(gè)特殊的屬性,它是出現(xiàn)不是給開(kāi)發(fā)者用的(例如你為一個(gè)組件設(shè)置key之后不能獲取組件的這個(gè)key props),而是給react自己用的??梢詤⒖?a >https://segmentfault.com/a/11...

離殤 回答

拼桌的時(shí)候 判斷 selected includes 這一桌就可

玩控 回答

兄弟要學(xué)會(huì)用F12查看控制臺(tái)反饋,你這“一片空白”的描述,實(shí)在沒(méi)法給你建議

目測(cè)使用了 css module, 需要切換到全局 scope.

:global([v-cloak]) {
  display: none;
}
薔薇花 回答

第一段代碼,所有的i都指向foo中定義的i,其中f1/f2/foo()()的i各自獨(dú)立;

第二段代碼,this始終指向window,因此全程都在操作同一個(gè)i,即全局定義的i,初始值100

你的getData是異步的,當(dāng)你調(diào)用receiveData的時(shí)候,會(huì)直接返回空的Data出來(lái),因?yàn)槟愕膁ata賦值操作是在異步回調(diào)里面去做的,但是你的return卻不是在回調(diào)里面。你應(yīng)該把receiveData也弄成async,然后調(diào)用的時(shí)候用await

async receiveData( dataUrl, start ) {
        const _self = this;

        return _self.getData('virtual/result', 2)       
    }
    
let data = await receiveData() 
// 或者下面這樣
receiveData.then(
            function(responseThenData) {
                //responseThenData;
            })
            .then(function() {
                //console.log('abc')
            })
            .catch(function(e) {
                console.log("promise, error =", e);
            });    

大概是這么改

故人嘆 回答

用<xmp></xmp>把標(biāo)簽包起來(lái)。不知道是不是你想要的結(jié)果。

怣痛 回答

已經(jīng)自己寫(xiě)了一個(gè)解析方法

/**
 * 解析字符串為 Date 對(duì)象
 * @param dateStr 日期字符串
 * @param fmt 日期字符串的格式
 * 目前僅支持使用 y(年),M(月),d(日),h(時(shí)),m(分),s(秒),S(毫秒)
 */
Date.of = function (dateStr, fmt) {
    if (!dateStr) {
        throw new Error('傳入的日期字符串不能為空!');
    }
    if (!fmt) {
        throw new Error('傳入的日期字符串的自定義格式不能為空!');
    }

    /**
     * 日期格式化對(duì)象
     * @param name 日期格式的名稱(chēng)
     * @param format 日期的格式值
     * @param value 格式化得到的值
     * @constructor
     */
    function DateFormat(name, format, value, index) {
        this.name = name;
        this.format = format;
        this.value = value;
        this.index = index;
    }

    //日期時(shí)間的正則表達(dá)式
    const dateFormats = {
        year: 'y{1,4}',
        month: 'M{1,2}',
        day: 'd{1,2}',
        hour: 'h{1,2}',
        minute: 'm{1,2}',
        second: 's{1,2}',
        milliSecond: 'S{1,3}'
    };
    //如果沒(méi)有格式化某項(xiàng)的話(huà)則設(shè)置為默認(rèn)時(shí)間
    const defaultDateValues = {
        year: '2001',
        month: '01',
        day: '01',
        hour: '00',
        minute: '00',
        second: '00',
        milliSecond: '000'
    };
    //保存對(duì)傳入的日期字符串進(jìn)行格式化的全部信息數(shù)組列表
    const dateUnits = [];
    for (const fmtName in dateFormats) {
        const regExp = new RegExp(dateFormats[fmtName]);
        if (regExp.test(fmt)) {
            const matchStr = regExp.exec(fmt)[0];
            const regexStr = String.fill('`', matchStr.length);
            const index = fmt.indexOf(matchStr);
            fmt = fmt.replaceAll(matchStr, regexStr);
            dateUnits.push(new DateFormat(fmtName, String.fill('\\d', matchStr.length), null, index));
        } else {
            dateUnits.push(new DateFormat(fmtName, null, defaultDateValues[fmtName], -1));
        }
    }
    //進(jìn)行驗(yàn)證是否真的是符合傳入格式的字符串
    fmt = fmt.replaceAll('`', '\d');
    if (!new RegExp(fmt).test(dateStr)) {
        return null;
    }
    //進(jìn)行一次排序, 依次對(duì)字符串進(jìn)行截取
    dateUnits.sort(function (a, b) {
        return a.index - b.index;
    });
    for (var i = 0, length = dateUnits.length; i < length; i++) {
        const format = dateUnits[i].format;
        if (format == null) {
            continue;
        }
        const matchDateUnit = new RegExp(format).exec(dateStr);
        if (matchDateUnit !== null && matchDateUnit.length > 0) {
            dateStr = dateStr.replace(matchDateUnit[0], '');
            dateUnits[i].value = matchDateUnit[0];
        }
    }
    //將截取完成的信息封裝成對(duì)象并格式化標(biāo)準(zhǔn)的日期字符串
    const obj = dateUnits.toObject(function (item) {
        return {
            key: item.name,
            value: item.value
        };
    });
    const date = '{year}-{month}-{day} {hour}:{minute}:{second}:{milliSecond}'.format(obj);
    try {
        return new Date(date);
    } catch (e) {
        return null;
    }
};

//下面是上面的 Date.of() 使用的一些輔助方法

/**
 * 替換所有匹配exp的字符串為指定字符串
 * @param exp 被替換部分的正則
 * @param newStr 替換成的字符串
 */
String.prototype.replaceAll = function (exp, newStr) {
    return this.replace(new RegExp(exp, "gm"), newStr);
};

/**
 * 原型:字符串格式化
 * @param args 格式化參數(shù)值
 */
String.prototype.format = function (args) {
    var result = this;
    if (arguments.length < 1) {
        return result;
    }

    var data = arguments; // 如果模板參數(shù)是數(shù)組
    if (arguments.length === 1 && typeof (args) === "object") {
        // 如果模板參數(shù)是對(duì)象
        data = args;
    }
    for (var key in data) {
        var value = data[key];
        if (undefined !== value) {
            result = result.replaceAll("\\{" + key + "\\}", value);
        }
    }
    return result;
};

/**
 * 為 js 的 String 添加填充字符串的靜態(tài)方法
 * @param item 填充的元素
 * @param length 填充的長(zhǎng)度
 * @returns {string} 填充得到的字符串
 */
String.fill = function (item, length) {
    var result = '';
    for (var i = 0; i < length; i++) {
        result += item;
    }
    return result;
};

/**
 * js 數(shù)組轉(zhuǎn)換為一個(gè) Object 對(duì)象
 * @param fn 轉(zhuǎn)換方法
 * @returns {{}} 得到的 Object 對(duì)象
 */
Array.prototype.toObject = function (fn) {
    const obj = {};
    this.map(fn)
        .forEach(function (item) {
            obj[item.key] = item.value;
        });
    return obj;
};

嗯,順便也發(fā)了一篇 blog 呢
https://rxliuli.blogspot.com/...

忘了我 回答

你描述的問(wèn)題就是Vue的核心功能啊,不管你是用script引入的Vue,還是用vue-cli生成的應(yīng)用骨架。這個(gè)問(wèn)題,只能靠你自己再去看下官方文檔,研究下怎么“間接地”用“數(shù)據(jù)驅(qū)動(dòng)視圖”,而不是點(diǎn)擊下按鈕直接就添加一組HTML標(biāo)簽。這是個(gè)思路問(wèn)題,思路恰恰就是Vue的核心思想。相關(guān)的知識(shí)點(diǎn):Vue列表渲染,操作(點(diǎn)擊)改變數(shù)據(jù),Vue監(jiān)聽(tīng)到數(shù)據(jù)的變化動(dòng)態(tài)渲染列表(也就是你說(shuō)的添加一組HTML標(biāo)簽)。

React 默認(rèn)只給 render 方法綁定了 this, 其他自定義的方法都需要自己手動(dòng)綁定 this 的

首先你要知道在一個(gè) React 組件中 this 指的是什么?

  • this 是指的當(dāng)前組件的實(shí)例, 如果你在方法中的 this 指向不對(duì)的話(huà), 那么當(dāng)前組件里面的state, props你都無(wú)法使用的
  • 你可以在 constructor 內(nèi)初始化的時(shí)候就給自定義的方法綁定 this 指向當(dāng)前實(shí)例
  • 也可以在綁定事件的時(shí)候綁定 this 的值, 比如 <div onClick="this.handlerClick.bind(this)"></div>
  • 再或者使用箭頭函數(shù)定義方法, 因?yàn)榧^函數(shù)是不綁定 this 的, 所以會(huì)向上查找 this 就會(huì)找到組件實(shí)例進(jìn)行使用
  • 再或者使用 es7的 :: (我沒(méi)用過(guò), 就不說(shuō)了)

總之建議你再學(xué)習(xí)下 bind, call, apply, react的 this 使用等知識(shí)

情未了 回答

上面幾個(gè)處理都不完備,存在如果輸入數(shù)據(jù)不是排序則結(jié)果不正確的可能。
下面的處理其實(shí)也有一些可能的問(wèn)題(數(shù)據(jù)可能不是期望的順序),但對(duì)輸入數(shù)據(jù)可以得出完備的結(jié)果

function fn(str){
    var tmpObj={};
    var newArr=[];
    var arr = str.split(",");
    arr.map(function(item){  //arr輸出到tmpObj對(duì)象
       var itemA=item.split("-");
       var key=itemA[0];
       var v=itemA[1];
       if(tmpObj[key]){ //判斷一個(gè)鍵值對(duì)象是否存在,不存在就初始化,否則就添加新值
           tmpObj[key].push(v);
       }else{
           tmpObj[key]=[v];
       }
    });
    
    //下面把tmpObj按要求轉(zhuǎn)化為數(shù)組
    for( var key in tmpObj){
        var tmpO={}
        tmpO["name"]=key;
        tmpO["nameIdx"]=[];
        for(var i=0;i<tmpObj[key].length;i++){
            tmpO["nameIdx"].push({"site":tmpObj[key][i]});
        }
        newArr.push(tmpO);
    }
    return newArr;
}

可能不是樓上需要的,還是下面符合要求

function s2a(str){
    var arr=[];
    var lastName='';
    str.split(',').forEach(s=>{
        const [name,site] = s.split('-');
        var cit=arr[arr.length-1];
        if(name!=lastName){
            lastName=name;
            cit={name,'nameIdx':[]};
            arr.push(cit);
        }
        cit['nameIdx'].push({site});
        });
    return arr;
}
孤星 回答

首先2不是模擬表單,表單應(yīng)該是form-data,而2application/x-www-form-urlencoded。
其次你把2中的代碼封裝一下,不就是3了嗎?
而事實(shí)上1,2,3都只做了一件事情,就是滿(mǎn)足http協(xié)議,然后發(fā)送它。