2016-12-14 12 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つの整数の配列を与え2つの最低の正の数の合計を返す関数を作成します。浮動小数点数や空の配列は渡されません。解決

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つの整数の配列を与えられた2つの最小の正の数の和を返す関数を作成します。浮動小数点数または空の配列は渡されません** function sumTwoSmallestNumbers(numbers){ var array = numbers.slice(0,2);array.sort(function(a、b){return b-a}); var a1 =数値[0]。 var a2 =数値[1]; (numbers [i] qazweriopkoilj

+1

ああ、あなたは質問してください。 – Mahi

+0

しかし、私はこの演習を解決する必要はありませんでしたが、概念を学ぶために必要でした。なぜならこれは私のコードがうまくいかない初めてのことではないからです。 – qazweriopkoilj

関連する問題