2016-12-14 63 views
0

...如何將循環數組的元素分配給JS中的另一個?

function ar(farray) { 
    var array = farray.slice(0, 2); 
    for (i = 2; i <= farray.length; i++) { 
     if (array[0] < farray[i]) { 
      //Here is the problem.Why i can 't just (re)assign value, referencing to another array? 
      //need to be assigned-copied-rewrited!! 
      array[0] = farray[i]; 
     } 
    } 
    return array[0] + array[1]; 
} 

創建一個返回給定的最小的4個整數數組的兩個最低正數的總和的函數。沒有浮點數或空數組將被傳遞。

function sumTwoSmallestNumbers(numbers) { 
var array=numbers.slice(0,2); 
array.sort(function(a,b){return b-a}); 
array[0]=numbers[0]; 
array[1]=numbers[1]; 
for (i=2;i<=numbers.length; i++){ 
if (numbers[i]<array[0] || numbers[i]<array[1]) { 
if (numbers[i]<array[0]) { 
array[0]=numbers[i]; 
} else { 
array[1]=numbers[i]; 
    }   
    } 

解決了!

//My sorting relies on positions of value in 'array', therefore for every 'for' loop I need prepared positions 
array.sort(function(a,b){return b-a}); 
} 
return array[0]+array[1]; 
}; 
+2

你到底想達到什麼目的? – Satpal

+0

可以請你更具體 – Mahi

+0

當我返回它的時候,我的數組並沒有通過循環被改變。 – qazweriopkoilj

回答

0

爲什麼你需要另一個數組?

function ar(farray) { 
 
    var a = farray[0]; 
 
    for (i = 2; i <= farray.length; i++) { 
 
     if (a < farray[i]) 
 
      a = farray[i]; 
 
    } 
 
    return a + farray[1]; 
 
}

+0

如果是絕對特定的,我正在做練習:**創建一個函數,返回兩個最小正數的和,給定一個最小4整數的數組。 **函數sumTwoSmallestNumbers(numbers){var_type = numbers.slice(0,2); array.sort(function(a,b){return b-a}); var a1 = numbers [0]; var a2 = numbers [1]; (數字[i] qazweriopkoilj

+1

哦,你應該問的問題。 – Mahi

+0

好的,但我不需要解決這個練習,而是要了解這個概念,因爲這不是我第一次不能使用代碼。 – qazweriopkoilj

相關問題