鍍金池/ 問答/ HTML問答
汐顏 回答

報錯的地方應(yīng)該不是你貼的代碼的地方,查看一下那個代碼使用了refs。那個ref出問題了。

耍太極 回答

你可以用一個數(shù)組來存class狀態(tài)。

<button data-index='{{index}}' class='{{index+1==selectedList[index]?"m":""}}' bindtap="changeName"> {{item.data}} </button>

Page({
  data: { name: 'lili', selectedList:[], datas: datas.dataa },
  changeName: function (e) {
    var x = e.currentTarget.dataset.index
    this.setData({
        ['selectedList[' + x + ']']: this.data.selectedList[x]?null:x+1
    })
})
命于你 回答

圖片路徑有問題咯,直接用/static試試

孤慣 回答

then 里面出現(xiàn)了語法錯誤,拋出異常,也會走到 catch() 回調(diào)里面吧,不一定時 是 網(wǎng)絡(luò)錯誤。

生性 回答
實在不知道是為什么

你打印一下inp1inp2的值就知道為什么了

凝雅 回答

一個例子說明問題:
this.state = {a: 1, b: 2};
當(dāng)你執(zhí)行this.setState({a: 3})的時候,不會影響其b的值。
最終結(jié)果為{a: 3, b: 2}

意思是說,將你setState的這個屬性完全替換掉而不影響其他屬性的值。類似Object.assgin()函數(shù)。

黑與白 回答

await 表示等待的意思,如果后面不是一個異步的 那會直接返回

魚梓 回答

可以監(jiān)聽事件

ar myVideo=document.getElementById("media");  
myVideo.addEventListener('play',function(){  
         
});  
myVideo.addEventListener('pause',function(){  
})  

http://www.w3school.com.cn/ta...

安于心 回答

你要知道Sublime Text3 并不是一個IDE,雖然它提供了很多的插件,但是我覺得縮進還是自己做好,即使是IDE的代碼格式化也不盡如人意,然后你今后還會發(fā)現(xiàn)其實這些編輯器的自動換行也很不科學(xué),所以縮進和換行這些還是自己手動來吧

雅痞 回答
$('input').attr('checked', false);

換成

$('input').prop('checked', false);

即可

checked屬性實際上對應(yīng)的是defaultChecked特性,設(shè)定多選框的初始狀態(tài)值。
參照:
Attributes vs. Properties

樓主解決這問題了嗎 我也正好遇到了 一愁莫展啊

囍槑 回答

modelsubscriptions中可以監(jiān)聽到。
但是,你要監(jiān)聽state,那么放在reducers中就可以了。因為state的改變就是通過reducers函數(shù)實現(xiàn)了。

舊螢火 回答

參考ECMAScript 6 入門 - 對象的擴展里,屬性的簡寫中提到的方法簡寫:

除了屬性簡寫,方法也可以簡寫。
const o = {
  method() {
    return "Hello!";
  }
};

// 等同于

const o = {
  method: function() {
    return "Hello!";
  }
};
朽鹿 回答

setPage = {this.setPage.bind(this)}
or
setPage = {()=>{this.setPage()}}

影魅 回答

測試了一下15MB解析用了1秒多不算慢啊

readFile:文件流讀取
marked:marked解析

size: 9kb
readFile: 4.339ms
marked: 9.717ms

size: 59kb
readFile: 5.135ms
marked: 18.863ms

size: 1550kb 1.5mb
readFile: 12.929ms
marked: 182.330ms

size: 15500kb 15mb
readFile: 96.652ms
marked: 1330.810ms
胭脂淚 回答

如果你最多是3個數(shù)據(jù),就是supreme的方法就好了,如果還可能更多的數(shù)據(jù),甚至數(shù)據(jù)數(shù)不定,這個其實要用遞歸或者分治算法(用來解決遞歸算法層數(shù)過多的問題),這個就比較復(fù)雜了。


其實這個問題用位運算是比較好算的,也可以結(jié)合分治來處理:

  1. 根據(jù)數(shù)組元素數(shù)量N,可以分成N段二進制數(shù)據(jù)位
  2. 根據(jù)每個數(shù)據(jù)元素An,則N段二進制數(shù)位的值范圍就可以得出(二進制位數(shù)),并有一個對應(yīng)的最大值A(chǔ)n-1
  3. 所有的組合就和這個N段2進制位數(shù)(假設(shè)總共有M位),則0-2^M-1共2^M個數(shù)中濾除各段不符合情況后的數(shù)據(jù),根據(jù)段分開后對應(yīng)值的組合,即遍歷0-這個二進制數(shù)范圍內(nèi)
  4. 這樣遍歷一遍0-2^M,濾除各段不符合的情況就可以得出所有合適情況了。

以[2,2,3]為例來介紹,我們從低位開始作為處理
2,表示1,2 二種狀態(tài),對應(yīng)1位二進制,最大值2-1=1
2,表示1,2 二種狀態(tài),對應(yīng)1位二進制,最大值2-1=1
3,表示1,2,3 3種狀態(tài),對應(yīng)2位二進制,最大值3-1=2
這樣,需要1+1+2共4位二進制數(shù)來表示所有組合,其中還需要濾除最高位的2個段的一些情況(2位2進制數(shù)其實可以表示4種狀態(tài)的),后面注意是低位開始對應(yīng)
00 0 0,對應(yīng)1,1,1
00 0 1, 對應(yīng)2,1,1
00 1 0,對應(yīng)1,2,1
00 1 1,對應(yīng)2,2,1
01 0 0,對應(yīng)1,1,2
01 0 1,對應(yīng)2,1,2
01 1 0,對應(yīng)1,2,2
01 1 1,對應(yīng)2,2,2
10 0 0,對應(yīng)1,1,3
10 0 1,對應(yīng)2,1,3
10 1 0,對應(yīng)1,2,3
10 1 1,對應(yīng)2,2,3
11 0 0 位段超出不符合
11 0 1 位段超出不符合
11 1 0 位段超出不符合
11 1 1 位段超出不符合


算法思路就介紹到這里,實現(xiàn)其實不是太復(fù)雜,不過如果位數(shù)太多了(超出語言處理范圍)還是需要分治


這個問題如果真實的規(guī)模比較大,還需要考慮空間復(fù)雜度和時間復(fù)雜度問題,遞歸肯定是不行的,就是轉(zhuǎn)換遞歸為循環(huán),空間復(fù)雜度也不一定好(當(dāng)然實際情況下也不該由javascript來處理這么大復(fù)雜度的問題,但仍需考慮不是)。


這里再給出一個循環(huán)的方式

var arr = [2,2,3,2,5];           
function MC(inarr,n){
    var rt=[];
    for(var i=0;i<inarr.length;i++){
       for(var j=1;j<=n;j++){
           var t=inarr[i].concat();
           t.push(j);
           rt.push(t)
       }
    }
    return rt;
}

var mrt=[[]];
for(var i=0;i<arr.length;i++){
    mrt=MC(mrt,arr[i]);
}
console.log(mrt);