JavaScriptで配列内の整数の符号を反転させる方法
問題
JavaScriptで、正と負の整数が混在する配列を受け取る関数を書く必要があります。
この関数は、配列内のすべての正の数を負の数に、すべての負の数を正の数に変換し、その結果の配列を返すものとします。なお、0の符号を反転しても0のままである点に注意してください。
コード例
以下が実際のコードです。
const arr = [5, 67, -4, 3, -45, -23, 67, 0];
const invertSigns = (arr = []) => {
const res = [];
for(let i = 0; i < arr.length; i++){
const el = arr[i];
if(el !== 0){
const inverted = el * -1;
res.push(inverted);
}else{
res.push(el);
};
};
return res;
};
console.log(invertSigns(arr));出力結果
[ -5, -67, 4, -3, 45, 23, -67, 0 ]
より簡潔な書き方:mapメソッドを使う
上記のコードはforループで各要素を処理していますが、map()メソッドを使うと、より簡潔に同じ処理を実現できます。符号の反転は単純に「-1を掛ける」だけでよいので、0かどうかの判定すら不要になります。
const arr = [5, 67, -4, 3, -45, -23, 67, 0]; const invertSigns = (arr = []) => arr.map(num => num * -1); console.log(invertSigns(arr)); // [ -5, -67, 4, -3, 45, 23, -67, 0 ]
さらに短くしたい場合は、ビット演算子のNOT(~)を使った~num + 1や、単項マイナス演算子を利用した-numという書き方もあります。map()は元の配列を変更せず新しい配列を返すため、安全に符号反転を行うことができます。
-
JavaScriptで整数の配列を作成する基本方法をわかりやすく解説
JavaScriptで整数の配列を作成する最もシンプルな方法は、配列リテラル(角括弧 [])を使うことです。要素をカンマで区切って並べるだけで、簡単に整数の配列を定義できます。 var rank = [1, 2, 3, 4]; newキーワードとArrayコンストラクタを使う方法 もうひとつの方法として、new キーワードを使って Arrayコンストラクタ から配列を生成することもできます。 var rank = new Array(1, 2, 3, 4); この場合、Arrayの引数には文字列や整数のリストを渡します。ただし、引数として数値を1つだけ指定した場合は挙動が異なり、その値は配列の
-
JavaScriptのオブジェクト配列に配列メソッドを適用する方法
JavaScriptでは、オブジェクトが格納された配列に対しても、通常の配列と同じようにpop()、push()、splice()などの標準的な配列メソッドをそのまま使用できます。オブジェクト配列はあくまで「配列」であるため、要素としてオブジェクトが入っていても配列操作のAPIは共通で動作します。 コード例 以下は、JavaScriptオブジェクトの配列に対して配列メソッドを使用するサンプルコードです。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8