JavaScriptで配列内の正の数の個数と負の数の合計を返す方法
問題
正の数と負の数が混在する整数の配列を受け取り、1つ目の要素に正の数の個数、2つ目の要素に負の数の合計を格納した新しい配列を返すJavaScript関数を作成する必要があります。
例えば、入力配列が [1, 2, 1, -2, -4, 2, -6, 2, -4, 9] の場合、正の数は6個、負の数の合計は -16 となるため、出力は [6, -16] になります。
実装例
以下がそのコードです。
const arr = [1, 2, 1, -2, -4, 2, -6, 2, -4, 9];
const posNeg = (arr = []) => {
const creds = arr.reduce((acc, val) => {
let [count, sum] = acc;
if(val > 0){
count++;
}else if(val < 0){
sum += val;
};
return [count, sum];
}, [0, 0]);
return creds;
};
console.log(posNeg(arr));出力
[ 6, -16 ]
コードの解説
このコードでは、reduce() メソッドを使用して配列を一度だけ走査しています。アキュムレータの初期値として [0, 0] を設定し、各要素に対して以下の処理を行います。
- 要素が正の数の場合:カウントを1つ増やす
- 要素が負の数の場合:合計にその値を加算する
- 要素が0の場合:いずれの処理も行わない
最終的に「[正の数の個数, 負の数の合計]」という形式の配列を返します。このアプローチなら、配列を複数回ループすることなく、1回の走査で両方の値を効率的に取得できるのが大きなメリットです。
-
JavaScriptで配列に存在しない最小の正の整数を見つける方法
JavaScriptでは、整数の配列を第一引数(唯一の引数)として受け取る関数を作成する必要があります。この関数の役割は、配列に存在しない最小の正の整数を見つけて返すことです。問題の例たとえば、入力配列が次のような場合を考えてみましょう。const arr = [4, 2, -1, 0, 3, 9, 1, -5];このとき、期待される出力は次のとおりです。const output = 5;理由は簡単です。1、2、3、4はすでに配列内に存在していますが、5は配列に含まれていないため、存在しない最小の正の整数となります。なお、負の数(-1、-5)や0は正の整数ではないため、答えの候補からは除外され
-
JavaScriptで配列が表す数値より1大きい数を新しい配列として返す方法
問題の概要正の整数のみを含む配列 arr を受け取るJavaScript関数を作成する必要があります。この関数は、まず配列内の数字をつなぎ合わせて1つの数値とみなし、その数値に1を足した結果を、再び各桁に分割した新しい配列として返します。例えば、関数への入力が次の場合を考えてみましょう。入力const arr = [6, 7, 3, 9];出力const output = [6, 7, 4, 0];出力の解説入力配列が表す数値は「6739」であり、それに1を加えた「6740」を各桁に分解すると [6, 7, 4, 0] となるためです。実装コード以下がその実装例です。v*1); }; cons