給定一個數組,它將始終包含two
或three
值。我需要確定最大值的索引並添加屬性,讓它可以說main
。然後根據設置的順序將left
設置爲第一小值並將right
設置爲第二小值。 (小心array6
)按數值和順序確定數組
總是有一個main
。
很容易確定,如最大的價值:
var array1 = [0.25, 0.75]; // desired result: ['left', 'main']
var array2 = [0.75, 0.25]; // desired result: ['main', 'right']
var array3 = [0.25, 0.50, 0.25]; // desired result: ['left', 'main', 'right']
var array4 = [0.50, 0.25, 0.25]; // desired result: ['main', 'left', 'right']
var array5 = [0.25, 0.25, 0.50]; // desired result: ['left', 'right', 'main']
var array6 = [0.40, 0.10, 0.50]; // desired result: ['left', 'right', 'main']
var array7 = [0.50, 0.50]; // desired result: ['left', 'main']
index1 = array1.indexOf(Math.max.apply(Math, array1));
index2 = array2.indexOf(Math.max.apply(Math, array2));
index3 = array3.indexOf(Math.max.apply(Math, array3));
index4 = array4.indexOf(Math.max.apply(Math, array4));
index5 = array5.indexOf(Math.max.apply(Math, array5));
index6 = array6.indexOf(Math.max.apply(Math, array6));
console.log(
'index1: ', index1,
'index2: ', index2,
'index3: ', index3,
'index4: ', index4,
'index5: ', index5,
'index6: ', index6
);
但我怎麼能達到預期結果的不休息,現在100,如果用別的來確定?
更新 數組值的總和總是爲1
。
我不認爲它在很短的一行是可能的(或讀取)。相反,我會寫一個函數'function(probabilities){return ['left','right','main']; }'並使用if/else塊。當功能正在工作時,您可以嘗試優化和組合類似的代碼塊。 – user3151902
'[0.50,0.25,0.75]'應該輸出什麼?它是「[左,右,主]」嗎?但'0.50'大於'0.25',根據你的問題,它會是'[right,left,main]' –
oooh @KoushikChatterjee好問題!我會更新這個問題,因爲我在那裏提到它是錯誤的!它應該是'[''左','右','主']' – caramba