2016-07-05 71 views
3

用合理的效率否定JavaScript數組中所有元素的最短途徑是什麼?如何否定javascript數組中的所有元素

例如,該解決方案將轉換[0, 18, -1, -2, 1, 3][0, -18, 1, 2, -1, -3]

的解決方案並不需要處理的是爲NaN /未定義/ null的任何值,因爲我需要這個數組不包含任何這些值的。

這是我通常做(與數組array):

for(var i = 0; i < array.length; i++) { 
    array[i]*=-1 
} 

的問題是,我需要反轉在幾個地方這陣,所以不想再使用大型代碼。

感謝

+2

那你試試?不應該很難至少做出嘗試,並且表現出這種嘗試而不是要求如何從頭開始做 – charlietfl

回答

5

這將是array.map返回每個值的負值。爲箭頭函數添加更短的語法。

var negatedArray = array.map(value => -value); 
+3

雖然它給出了'-0',但卻是一種很好的方法。 – choz

+0

-0是否與0不同? – user31415

+1

不是它不.. – choz

1

否定在JavaScript陣列

我想你指的是否定僅正數的所有元素。

var _myArray = [0, 18, -1, -2, 1, 3] 
var _invArray = []; 
_myArray.forEach(function(item){ 
    item >0 ?(_invArray.push(item*(-1))) :(_invArray.push(item)) 
}) 
console.log(_invArray); 

JSFIDDLE

+0

不,但是很好的解決方案。 '_invArray.push(-Math.abs(item))'也可以起作用,如果那是我一直在尋找的 – user31415

相關問題